[英]What is the pythonic way to setattr() for a module?
在類方法中,我可以使用內置函數添加屬性:
setattr(self, "var_name", value).
如果我想在模塊中做同樣的事情,我可以做類似的事情:
globals()["var_name"] = value
這是最好的方法嗎,還是有更多的pythonic解決方案?
你建議的方法
globals()["var_name"] = value
確實是最恐怖的方式。 特別是,它比使用eval更加Pythonic,這將是你的主要(但不僅僅是)替代方案。
但是,如果您仍想使用setattr
,則可以使用sys.modules來獲取對當前模塊對象的引用,其中包含當前模塊的__name__
變量( 在此處說明 ),如下所示:
import sys
setattr(sys.modules[__name__], "var_name", value)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.