gpt4 book ai didi

python - 在 Python 中重新加载依赖模块

转载 作者:太空狗 更新时间:2023-10-30 02:47:14 30 4
gpt4 key购买 nike

假设我有一个导入 othermodule.py 的 Python 脚本 main.py。是否可以在 main.py 中编写一个 reload(othermodule),这样当我对 othermodule.py 进行更改时,我仍然可以reload(main),然后会重新加载其他模块?

最佳答案

嗯,事情并没有那么简单。假设你有一个 main.py像这样……

import time
import othermodule

foo = othermodule.Foo()
while 1:
foo.foo()
time.sleep(5)
reload(othermodule)

...和一个othermodule.py像这样……

class Foo(object):
def foo(self):
print 'foo'

...那么如果你改变othermodule.py对此...

class Foo(object):
def foo(self):
print 'bar'

...同时 main.py仍在运行,它将继续打印 foo , 而不是 bar ,因为 foo main.py 中的实例将继续使用旧的类定义,尽管您可以通过 main.py 来避免这种情况像这样……

import time
import othermodule

while 1:
foo = othermodule.Foo()
foo.foo()
time.sleep(5)
reload(othermodule)

重点是,您需要了解导入模块的各种更改,这些更改会导致 reload() 出现问题。 .

可能有助于在原始问题中包含一些源代码,但在大多数情况下,重新启动整个脚本可能是最安全的。

关于python - 在 Python 中重新加载依赖模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16675066/

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