[英]Imported class doesn't know local variables
我有兩個文件(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()
現在我想將 class klasse
從 Backupfile2.py 導入到 Backupfile.py 並將 (2,2) 添加到列表obj
中。
以下是在 Backupfile2.py 中:
class klasse:
def __init__(self):
obj.append((2,2))
print(obj)
但是,為什么 class klasse
不知道變量obj
一旦被導入?
class klasse 不知道變量 obj,因為它不在同一個 scope 中。 本地范圍的變量不與 class 中的變量共享。 一種簡單的解決方案是使用 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 的初學者課程。
我不確定答案,因為我不是專家,因為我不明白你想做什么,但我認為你錯過了 class “klasse”中的 obj 聲明,我認為應該是就像是
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)
然后你的 class "klasse" 應該是
class klasse:
def __init__(self, obj):
obj.append((2,2))
print(obj)
我希望它會有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.