1
內第二次我有這樣導入一個類的實例
main.py
input/
__init__.py
foo.py
在main我導入Foo和與這些線創建它的一個實例與文件結構的項目:
爲主。 PY
from input.foo import Foo
foo = Foo()
裏面foo.py我需要使用線程,所以我將其導入並在初始化創建線程。
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本身會多次執行它。 – user2357112
從技術上講,您可以將'Thread'交給'Foo'的初始化程序,但是對於每個文件導入一次模塊確實沒有錯。 – L3viathan