我需要實例化一個快譯通的一些關鍵作爲一個獨立的全局變量。全局變量的字符串?
(之前你反對讓我提到這純粹是出於測試目的,我知道它污染了全球範圍內,它不打算作爲編程技術。)
確定。現在,這一點。如果我使用如下所示的簡單功能,它就可以工作。
def items_as_vars(obj, lst) :
for i in lst :
globals()[i] = obj.g(i)
print i, obj.g(i)
items_as_vars(OBJ,[ '圓', '正方形'])
打印圓
但我移動此成爲類方法在一個單獨的文件中的時刻它停止工作,即
class blah:
@staticmethod
def items_as_vars(obj, lst) :
for i in lst :
globals()[i] = obj.g(i)
print i, obj.g(i)
blah.items_as_vars(OBJ,[ '圈子', '方'])
打印圈
NameError: name 'circle' is not defined
任何想法,爲什麼?通過「停止工作」,我的意思是全局變量不再被實例化。
更多信息:它似乎工作時,類是在同一個文件,但不是當導入類時!
修改爲靜態方法,它是一樣的行爲。
停止工作?怎麼樣?請[mcve]。這兩個是相同的。 –
工作正常,我......你會需要提供一個更完整的例子。 –