gpt4 book ai didi

python - 在类实例中第二次导入

转载 作者:行者123 更新时间:2023-11-30 22:55:28 26 4
gpt4 key购买 nike

我有一个具有这样文件结构的项目

main.py
input/
__init__.py
foo.py

在 main 中,我导入 Foo 并使用以下几行创建它的实例:

ma​​in.py

from input.foo import Foo
foo = Foo()

在 foo.py 中,我需要使用线程,因此我导入它并在 init 中创建一个线程。

foo.py

from threading import Thread

class Foo
def __init__(self):
newThread = Thread()

后来我认为在 main.py 中拥有一个线程会很有用,因此我还使用 from threading import Thread 将其导入到那里。到目前为止,一切都按预期进行。我认为在执行过程中导入 Thread 两次是多余的,因此我从 foo.py 中删除了顶行并再次运行它。这次,当程序到达 newThread = Thread() 行时,我得到了 NameError: global name 'Thread' is not Defined

有没有办法让我在 main.py 中进行导入,并且在 foo.py 中再次导入它?在一个程序中两次导入同一个类感觉不对。

最佳答案

是的,您应该将所有导入和依赖项放在所有模块的顶部,即使其他模块具有相同的依赖项。 python 中的导入仅存在于该模块的范围内。即使 import 语句存在两次,python 也足够聪明,知道它已经被导入,并且不必实际重新导入模块。

关于python - 在类实例中第二次导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37420330/

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