好吧,我正在尝试设置fileA
具有的功能fileB
。在内部,file B
我使用的一些变量file A
。就像这样:
fileA
import fileB
a = []
fileB.function1()
文件B为:
fileB
import fileA
def function1():
fileA.a.extend([2, 3])
但我得到这个错误:
AttributeError: module 'fileB' has no attribute 'function1'
我知道有人对同一件事有疑问,但我还没有看到有人遇到这样的错误,直到现在我都找不到解决方案
@brunodesthuilliers在这种情况下如何避免循环依赖?
我首先要问为什么f1想要在f2中调用要触摸f1中的变量的函数。由于我们这里所提供的只是一个不受任何限制的玩具示例,因此不可能给出一个“一刀切”的答案,但是至少有三个主要解决方案:
如果两个人都需要如此亲密地彼此了解,为什么要分开他们呢?
f1.py:
def function():
a.extend([2, 3, 4]])
a = []
f2.py
import f1
f1.function()
print(f1.a)
因此f1不必了解f2。
f1.py
a = []
f2.py
import f1
def function():
f1.a.extend([2, 3, 4]])
f3.py
import f1
import f2
# this is really ugly... spooky action at distance.
f2.function()
print(f1.a)
a
作为参数所以f2不必了解f1
f1.py
import f2
a = []
f2.function(a)
f2.py
def function(a):
a.append([2, 3, 4])
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句