Portál AbcLinuxu, 10. května 2025 05:52
while
, tak se změna projeví i v potomkovi. Jakmile však potomek vstoupí do cyklu while 1:
, tak se zmena už neprojeví:
def run(self): while 1: if self.quit==True: break; if self.state==True: self.get_idle(); self.get_idle_workaround(); if int(self.idle)>=int(self.stime): pid=os.fork(); if pid==0: self.idle=0; os.execl(self.prog); else: os.wait(); time.sleep(1);Jde o proměnnou
self.state
, když jí z předka, kde mám instanci této třídy vytvořenou takto:
def __init__(self): self.pm=powerman.PowerMan(); self.state=True; pid=os.fork(); if pid==0: self.pm.run(self);změním pomocí
self.pm.state=False/True
, tak ze změna projeví, ale když jí změním po vstupu do smyčky while 1:
tak se změna nijak neprojeví, nevíte proč?
Na otázku zatím nikdo bohužel neodpověděl.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.