导入的类不知道局部变量



我有两个文件(Backupfile.py和Backupfile2.py(。

以下是Backupfile.py中的内容:

class Mater:
def __init__(self):
self.func()
def func(self):
from Backupfile2 import klasse
newclass = klasse()
obj =[]
obj.append((1,1))
print(obj)
mater = Mater()

现在我想将类klasse从Backupfile2.py导入到Backupfile.py,并将(2,2(添加到列表obj中。

以下是Backupfile2.py:

class klasse:
def __init__(self):
obj.append((2,2))
print(obj)

但是,为什么klasse类在导入变量obj后就不知道它呢?

类klasse不知道变量obj,因为它不在同一范围内。本地作用域中的变量不与类中的变量共享。一个简单的解决方案是使用global关键字,但我不会使用它。我会考虑在方法args中传递obj引用,如下所示:

class Mater:
def __init__(self, obj):
self.obj = obj
self.func()
def func(self):
from Backupfile2 import klasse
newclass = klasse(self.obj)
obj =[]
obj.append((1,1))
print(obj)
mater = Mater(obj)
class klasse:
def __init__(self, obj):
obj.append((2,2))
print(obj)

除了这个特定的问题,我建议你参加Python的初学者课程。

我不确定答案,因为我不是专家,也因为我不明白你想做什么,但我认为你错过了类中obj的声明"klasse";,我想应该是之类的

class klasse:
def __init__(self):
self.obj = []
self.obj.append((2,2))
print(obj)

或者,如果你想使用你所做的obj声明,你的代码应该是类似的东西

class Mater:
def __init__(self, obj):
self.func(obj)
def func(self, obj):
from Backupfile2 import klasse
newclass = klasse(obj)
obj =[]
obj.append((1,1))
print(obj)
mater = Mater(obj)

然后你的课";klasse";应该是

class klasse:
def __init__(self, obj):
obj.append((2,2))
print(obj)

我希望这会有所帮助。

最新更新