gpt4 book ai didi

python - python 中的导入是静态的,有什么解决方案吗?

转载 作者:太空狗 更新时间:2023-10-30 01:42:30 25 4
gpt4 key购买 nike

foo.py :

i = 10

def fi():
global i
i = 99

酒吧.py :

import foo
from foo import i

print i, foo.i
foo.fi()
print i, foo.i

这是有问题的。为什么 foo.i 改变时 i 没有改变?

最佳答案

Ross 所说的是像这样重构 foo:

_i = 10

def getI():
return _i

def fi():
global _i
_i = 99

然后你会看到它按照你想要的方式工作:

>>> import foo
>>> print foo.getI()
10
>>> foo.fi()
>>> print foo.getI()
99

从某种意义上说,它也“更好”,因为您可以避免导出全局变量,但仍提供对其的读取访问权限。

关于python - python 中的导入是静态的,有什么解决方案吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/744325/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com