好奇的是,如果別人之前做過這個。Python:如何使用枚舉值污染名稱空間
我想用枚舉值來污染我的命名空間。
例如在我的代碼中,我想引用RED,GREEN和BLUE而不是Color.RED,Color.GREEN和Color.BLUE。
直截了當的方法是,定義枚舉之後,把RED = Color.RED
,GREEN = Color.Green
和BLUE = Color.BLUE
...但我想保持其乾燥(不要重複自己),這意味着,當我添加一個新的顏色到枚舉我不想明確將它添加到名稱空間。
將是很好,如果定義class Color(Enum):
後,你可以from Color import *
我可以寫一個pollute_enum()
功能,將猴子locals()
或東西,但它會是該函數移動到工具包,因爲locals()
有問題會提到其他的東西。我知道有些模塊可以在調用堆棧上行走,但現在變得非常黑客。
出於好奇,到底爲什麼你會想這樣做? – Linuxios