所以,我想要做的是:在文件a.py中調用b.py中的函數foo(),然後它將更改a.py中的變量的值。這是我得到的錯誤:通信之間的兩個
AttributeError: module 'b' has no attribute 'foo'
我在做什麼錯?什麼是正確的方法來做到這一點?
所以,我想要做的是:在文件a.py中調用b.py中的函數foo(),然後它將更改a.py中的變量的值。這是我得到的錯誤:通信之間的兩個
AttributeError: module 'b' has no attribute 'foo'
我在做什麼錯?什麼是正確的方法來做到這一點?
您的import is circular。你需要想出一個非循環導入的測試方法。例如創建一個您執行的新主文件;進口a.a
和b.foo
有:
main.py
from b import foo
import a
a.a = 7
foo()
a.py
a = 0
b.py
import a
def foo():
a.a=4
首要的事情是使圓形的進口,並修復它是不是一個好理念。
但是嘗試在你的代碼中做小的改動並解決。
a.py:
from b import foo
a = 0
foo()
print a
b.py:
def foo():
import a as filea
filea.a=4
當您運行a.py,看print a
,它正在執行兩次。你需要承擔自己的風險,以確定很多這樣的事情。 而不是做所有馬戲團,最好避免循環進口。
你有一個cicular import ... –
都是在同一個位置的文件嗎? –
是的。將其中任一個導入到一個。這將解決您的問題。 –