【发布时间】:2014-10-05 10:34:34
【问题描述】:
所以我有两个 python 文件。我们称它们为 module.py 和 main.py。 module.py 看起来像这样:
name = "bob"
age = 20
def changename():
name = "tim"
main.py 看起来像这样:
import module
print(module.name)
module.changename()
print(module.name)
当我运行 main.py 时,我得到了这个输出,正如预期的那样:
>"bob"
>"tim"
但是,总是必须编写 module.name 会非常耗时,所以我可以使用 from module import *,它将所有变量和函数导入 main.py。但是,将 main.py 中的代码更改为以下代码后:
from module import *
print(name)
changename()
print(name)
我得到这个输出:
>"bob"
>"bob"
我认为这是因为 python 在开始时导入变量的值,然后当它们被 module.py 中的函数更改时不会更新它们。
我的问题是,有没有办法很好地从模块中导入所有函数和变量,但仍然允许模块更新它的变量?
提前致谢!
【问题讨论】:
-
你的第一个代码不可能返回那个输出。
-
from module import *通常是不好的做法;如果您需要更短的名称,import module as m。
标签: python