pythonシミュレーションenum列挙タイプのメソッドのまとめ

1188 ワード

この例ではpythonシミュレーションenum列挙タイプの方法をまとめた.皆さんの参考にしてください.具体的な分析は以下の通りである.
pythonにはenum列挙タイプはありません.pythonはこれが役に立たないと思っているかもしれません.次に、enum列挙タイプをシミュレートする3つの方法を挙げます.
方法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プログラム設計に役立つことを願っています.