我正在跟踪:A Curious Course on Coroutines and Concurrency来学习协程,
这是指令中的Task示例
class Task: #behave as a decorator
taskid = 0
def __init__(self, target):
Task.taskid += 1
self.tid = Task.taskid
self.target = target
self.sendval = None
def run(self):
return self.target.send(self.sendval)
# a very simple generator
def foo():
print("part 1")
yield
print("part")
yield
运行并通过
In [28]: t1.run()
part 1
In [29]: t1.run()
part 2
它实际上是一个装饰器
taskid = 0 #set taskid as a global variable
def Task(target, value):
def enclosure(value):
target.taskid += 1
return target.send(value)
return enclosure
只需将.send
重命名为.run
如何调用这样的应用程序将类用作闭包,
它是正式的专业术语还是图案名称?