【发布时间】:2013-10-01 01:04:58
【问题描述】:
为了让它更短,我有一个模块可以做到这一点:
MyModule
----mymodule.py
----__init__.py
mymodule.py
# Get the name of the current module
current_module = __import__(__name__)
setattr(current_module, 'VarA', 5)
因此,如果我位于 MyModule 文件夹内并打开一个 shell,则以下工作:
import mymodule
print mymodule.VarA
但如果我在 MyModule 文件夹之外进行本地化并执行以下操作:
from MyModule import mymodule
print mymodule.VarA
我得到:'module' object has no attribute 'VarA',我想这是因为setattr 正在其他地方设置VarA,所以无论我从哪里导入模块,VarA 在 mymodule 中都可用,该怎么办?
【问题讨论】:
-
在
mymodule.py,你为什么用setattr(..., 'VarA', 5)而不是VarA = 5?