私は "enum class"をPythonで記述しようとしています。私が現在経験しているわずかな迷惑は、enumクラス内でenum値を定義できないことです。Python 2.x - 同じクラスのクラスの静的インスタンスを作成する
class Fruit:
def __init__(self, name):
self.name = name
class Fruits(Enum):
Apple = Fruit("apple")
しかし、私はこれをしたい、または同様に読みやすいと同等になります:それは私がこれを行うことができ、ある
class Fruit(Enum):
def __init__(self, name):
self.name = name
Apple = Fruit("apple")
残念ながら、私は次のエラーを取得しています: 名「果実」定義されていません
このような場合の可視性のルールは何ですか?私を助けることができる、ほとんど知られていないPythonのトリックはありますか?私はEnumのメタクラスで書くことが可能なものを好むでしょう。それはユーザーの使い方をあまり煩雑にしてしまうからです。
は、列挙型のメタクラスは、表示されません。 – Liosan
これは、 'class'がブロックの最後に達するまで定義されていないためです。 – jamylak
クラス定義の後に、インスタンスを作成してaという名前で保存するために' Fruit.Apple = Fruit( "apple") 'クラス属性。 – martineau