python的枚举实现中`type('Enum', (), enums)`是什么意思?
python中没有枚举。
有人这样实现和使用:
def enum(**enums):
return type('Enum', (), enums)
使用示例:
>>> Numbers = enum(ONE=1, TWO=2, THREE='three')
>>> Numbers.ONE
1
>>> Numbers.TWO
2
>>> Numbers.THREE
'three'
http://outofmemory.cn/code-sn...
https://stackoverflow.com/que...
其中type('Enum', (), enums)
是什么意思?谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
type
这种三个参数的调用,其结果是返回一个“类”,就跟用class
定义是一样的。所以,
type('Enum', (), {'ONE': 1, 'TWO': 2})
就相当于:使用上,
class
是语法层面的东西,不方便动态构造,type
就是干这事的。type
一般用在“元类”中。(“元类”实例化得到“类“)简单理解就是,
instance
<-class
<-type
,大概是这样的。