我在Python中有一个关于类遗产的恼人问题。 代码如下:
import time
from threading import Thread
class Main:
def __init__(self):
self.var = 0
self.fils_on()
def fils_on(self):
self.temp = Fils()
self.temp.start()
def fils_off(self):
self.temp.stop()
del self.temp
class Fils(Thread, Main):
def __init__(self):
Main.__init__(self)
Thread.__init__(self)
self.encore = True
def run(self):
i = 0
while self.encore:
chaine = str(i)
print chaine
print "var: ", self.var
i += 1
time.sleep(1)
def stop(self):
self.encore = False
if __name__ == "__main__":
main = Main()
我的问题是当我调用“Main”时,我无法从Fils类打印self.var变量。
有人知道为什么吗? 我该如何解决?
答案 0 :(得分:1)
我不明白你想要实现什么,但似乎你正试图尝试线程,上面的实现超过了递归深度,因为你有一个循环依赖,来自Main类的__init__
取决于{{ 1}}并构造self.fils_on()
,触发Fils()
,然后调用Fils.__init__()
,然后整个过程继续。
在这里,我尝试修改你的代码,在其中我删除了Fils和Mains之间的继承,并在Fils中移动了var。
Main.__init__(self)