File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+
2+ class Task :
3+
4+ def __init__ (self , event = (lambda : print ('task running' ))):
5+ self .event = event
6+ self .cb = self .pre ()
7+ next (self .cb )
8+ print ('task init' )
9+
10+ def pre (self ):
11+ print ('task start' )
12+ flag = True
13+ while flag is True :
14+ flag = yield flag
15+ self .event ()
16+ print ('task exit' )
17+
18+ def run (self , flag = True ):
19+ try :
20+ res = self .cb .send (flag )
21+ return res
22+ except StopIteration as e :
23+ return False
24+
25+ if __name__ == "__main__" :
26+ tmp = Task ()
27+
28+ assert (tmp .run ())
29+ assert (tmp .run ())
30+ assert (False == tmp .run (False ))
31+
32+ print (tmp .run ())
33+ print (tmp .run (False ))
34+
35+
36+ class music :
37+
38+ def __init__ (self ):
39+ self .task = Task (self .pre )
40+ self .args = None
41+ print ('music init' )
42+
43+ def pre (self ):
44+ print ('pre ' , self .args )
45+
46+ def play (self , size = 10 ):
47+ self .args = list (range (size ))
48+ print (self .task .run ())
49+
50+ def stop (self ):
51+ print (self .task .run (False ))
52+ self .__init__ ()
53+
54+ def loop (self ):
55+ self .alive = False
56+ while self .alive :
57+ self .play ()
58+ stop ()
59+
60+ tmp = music ()
61+ tmp .play ()
62+ tmp .stop ()
63+ tmp .play ()
You can’t perform that action at this time.
0 commit comments