4
在一個類的方法,我可以添加使用內置的功能屬性:對於模塊,setattr()的pythonic方法是什麼?
setattr(self, "var_name", value).
如果我想做一個模塊內同樣的事情,我可以這樣做:
globals()["var_name"] = value
這是做這件事的最好方式,還是有更多pythonic解決方案?
在一個類的方法,我可以添加使用內置的功能屬性:對於模塊,setattr()的pythonic方法是什麼?
setattr(self, "var_name", value).
如果我想做一個模塊內同樣的事情,我可以這樣做:
globals()["var_name"] = value
這是做這件事的最好方式,還是有更多pythonic解決方案?
你的建議的方法
globals()["var_name"] = value
的確是最Python的方式。特別是,它比使用eval更顯着的Pythonic,這將是您的主要(但不僅僅是)替代方案。
import sys
setattr(sys.modules[__name__], "var_name", value)
我相信:
但是,如果你仍然想使用
setattr
,您可以通過使用sys.modules獲得與當前模塊的__name__
變量(explained here)在當前模塊對象的引用如下這樣做第一種方法是最Pythonic的方式。雖然,我不確定。 – 2010-06-02 23:20:26可能的重複[如何在當前模塊上調用setattr()?](http://stackoverflow.com/questions/2933470/how-do-i-call-setattr-on-the-current-module) – 2010-06-02 23:44:16