• 技术文章 >常见问题 >Python常见问题

    Python中有枚举类型吗?

    PythonPython2019-06-15 10:35:42原创3092
    python中没有enum枚举类型,可能python认为这玩意压根就没用,下面列举了三种方法模拟enum枚举类型

    方法1. 使用自定义类

    class Numbers(object):
      ONE = 1
      TWO = 2
      THREE = 3
    assert Numbers.ONE == 1
    assert Numbers.TWO == 2
    assert Numbers.THREE == 3

    方法2:使用函数动态创建类

    def enum(**enums):
      return type('Enum', (object,), enums)
    Numbers = enum(ONE=1, TWO=2, THREE=3)
    assert Numbers.ONE == 1
    assert Numbers.TWO == 2
    assert Numbers.THREE == 3

    方法3:创建一个从python的集合扩展来的对象

    class Enum(set):
      def __getattr__(self, name):
        if name in self:
          return name
        raise AttributeError
    Numbers = Enum( "ONE TWO THREE".split() )
    error = False
    try:
      print Numbers.ONE
      print Numbers.TWO
      print Numbers.THREE
    except:
      error = True
    assert error == False
    try:
      print Numbers.FOUR
    except:
      error = True
    assert error == True
    专题推荐:python
    上一篇:Python中怎么处理字符编码问题 下一篇:Python怎么生成xml文件

    相关文章推荐

    • Python中SQLite的简单应用• Python中实现URL的解析• 用Python怎么实现邮件功能

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网