【发布时间】:2014-11-13 07:37:27
【问题描述】:
???如何填写?
def ensure_finished(iterator):
try:
next(iterator)
except StopIteration:
return
else:
raise RuntimeError
def derived_generator(method):
def new_method(self, *args, **kwargs):
x = method(self, *args, **kwargs)
y = getattr(super(???, self), method.__name__)\
(*args, **kwargs)
for a, b in zip(x, y):
assert a is None and b is None
yield
ensure_finished(x)
ensure_finished(y)
return new_method
【问题讨论】:
-
@chepner:同时迭代基类和超类迭代器。
-
我只是将其添加为您之前关于定义方法的类的问题的用例(刚刚注意到您发布了两者),而不是在这里单独询问。
-
为什么你什么都没有?
-
我认为@chepner 是对的。这个问题的实际部分“我如何填写
???”与前面的问题“给定一个方法,我如何返回它所属的类”相同,因为该问题的答案是这个问题中的???。 -
@greschd 因为重点是同步协程。
标签: python python-3.x decorator super python-decorators