在类方法中,我可以使用内置函数添加属性:
setattr(self, "var_name", value).
如果我想在一个模块中做同样的事情,我可以这样做:
globals()["var_name"] = value
这是最好的方法吗,还是有一个更适合的解决方案?
你建议的方法
的确是最具蟒蛇的方式。特别是,它明显比使用 eval ,这将是你的主要(尽管不是唯一)选择。
但是,如果你还想用 setattr ,您可以使用 sys.modules 使用当前模块的 __name__ 变量( explained here )具体如下:
setattr
__name__
import sys setattr(sys.modules[__name__], "var_name", value)