【发布时间】:2021-04-02 02:11:44
【问题描述】:
我创建了一个应用程序,它只有一个包含所有功能的大类。代码运行顺利。
代码可以分为几个部分,例如:GUI、处理任务的纯块代码。
我想将原始类分成 2 个类,1 个是应用程序的 GUI,另一个是处理任务的块代码。
问题是当我这样做时,2 个类使用另一个类的实例变量。请问如何解决这个问题,请帮忙,谢谢。
原类示例:
Class App:
def __init__(self):
self.var1 = 'first variable'
self.var3 = 'third variable'
def method1(self):
self.var2 = 'second variable'
print(self.var3)
def method2(self):
print(self.var2)
self.method1()
这是 2 个新类的示例(我只是将它们拆分,没有修改任何内容):
Class GUI:
def __init__(self):
self.var1 = 'first variable'
def method1(self):
self.var2 = 'second variable'
print(self.var3) # <-- var3 is belonged to class Core
Class Core:
def __init__(self):
self.var3 = 'third variable'
def method2(self):
print(self.var2) # <-- var 2 is belonged to class GUI
self.method1() # <-- method1 belonged to class GUI too
【问题讨论】:
-
如何将所有变量保留在 init 方法中?无论如何应该是这样的。所以当你拆分一些变量时,只是没有被使用
-
将实例变量放在
__init__中只是为了声明它,对吧?因为我必须稍后在类的方法中使用它们 -
有点像(这不是强制性的,因为您可以在其他函数中定义它们,但它只会引发 PEP 错误或某事(代码仍在运行))但在这种情况下它只会帮助您,但实际上这里的答案也是一个很好的解决方法