X7ROOT File Manager
Current Path:
/lib64/python2.7/Demo/threads
lib64
/
python2.7
/
Demo
/
threads
/
??
..
??
Coroutine.py
(5.39 KB)
??
Coroutine.pyc
(4.15 KB)
??
Coroutine.pyo
(4.15 KB)
??
Generator.py
(2.48 KB)
??
Generator.pyc
(3.24 KB)
??
Generator.pyo
(3.24 KB)
??
README
(440 B)
??
fcmp.py
(1.71 KB)
??
fcmp.pyc
(1.65 KB)
??
fcmp.pyo
(1.65 KB)
??
find.py
(4.12 KB)
??
find.pyc
(3.78 KB)
??
find.pyo
(3.78 KB)
??
squasher.py
(2.97 KB)
??
squasher.pyc
(2.06 KB)
??
squasher.pyo
(2.06 KB)
??
sync.py
(21.15 KB)
??
sync.pyc
(10.85 KB)
??
sync.pyo
(10.85 KB)
??
telnet.py
(3 KB)
??
telnet.pyc
(2.47 KB)
??
telnet.pyo
(2.47 KB)
Editing: fcmp.py
# Coroutine example: controlling multiple instances of a single function from Coroutine import * # fringe visits a nested list in inorder, and detaches for each non-list # element; raises EarlyExit after the list is exhausted def fringe(co, list): for x in list: if type(x) is type([]): fringe(co, x) else: co.back(x) def printinorder(list): co = Coroutine() f = co.create(fringe, co, list) try: while 1: print co.tran(f), except EarlyExit: pass print printinorder([1,2,3]) # 1 2 3 printinorder([[[[1,[2]]],3]]) # ditto x = [0, 1, [2, [3]], [4,5], [[[6]]] ] printinorder(x) # 0 1 2 3 4 5 6 # fcmp lexicographically compares the fringes of two nested lists def fcmp(l1, l2): co1 = Coroutine(); f1 = co1.create(fringe, co1, l1) co2 = Coroutine(); f2 = co2.create(fringe, co2, l2) while 1: try: v1 = co1.tran(f1) except EarlyExit: try: v2 = co2.tran(f2) except EarlyExit: return 0 co2.kill() return -1 try: v2 = co2.tran(f2) except EarlyExit: co1.kill() return 1 if v1 != v2: co1.kill(); co2.kill() return cmp(v1,v2) print fcmp(range(7), x) # 0; fringes are equal print fcmp(range(6), x) # -1; 1st list ends early print fcmp(x, range(6)) # 1; 2nd list ends early print fcmp(range(8), x) # 1; 2nd list ends early print fcmp(x, range(8)) # -1; 1st list ends early print fcmp([1,[[2],8]], [[[1],2],8]) # 0 print fcmp([1,[[3],8]], [[[1],2],8]) # 1 print fcmp([1,[[2],8]], [[[1],2],9]) # -1 # end of example
Upload File
Create Folder