我想在python中編寫一個「枚舉類」。我目前遇到的一個小麻煩是無法在枚舉類中定義枚舉值。也就是說,我可以這樣做: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 2013-04-30 11:08:14
這是因爲'class'沒有完成定義,直到到達塊的末尾 – jamylak 2013-04-30 11:16:03
在類定義之後,您可以執行一個'Fruit.Apple = Fruit(「apple」)'來創建一個實例並將其作爲class屬性。 – martineau 2013-04-30 11:21:27