簡體   English   中英

什么是setattr()用於模塊的pythonic方法?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM