用动态成员定义枚举的更Python方式

用动态成员定义枚举的更Python方式,第1张

用动态成员定义枚举的更Python方式

这个怎么样?

data = json.load(open('slim-2.json'))CountryCode = enum.Enum('CountryCode', [    (x['alpha-2'], int(x['country-pre'])) for x in data])CountryCode._names = {x['alpha-2']: x['name'] for x in data}CountryCode.__str__ = lambda self: self._names[self.name]CountryCode.choices = lambda: ((e.value, e.name) for e in CountryCode)
  • 替换
    [...data[i]... for i in range(len(data))]
    [...x... for x in data]
    ; 您可以
    data
    在不使用索引的情况下排序序列(列表,在代码中)。
  • 使用
    CountryCode.attr = ...
    一致; 而不是混合
    CountryCode.attr = ...
    setattr(CountryCode, 'attr', ...)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5664169.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存