如何填寫???
?如何在Python 3的方法裝飾器中調用super?
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 2014-09-18 20:27:21
@chepner:同時遍歷基類和超類迭代器。 – 2014-09-18 20:28:35
我只是將這個添加爲您之前關於定義方法的類的問題的用例(剛注意到您發佈了這兩個方法),而不是單獨在這裏詢問。 – chepner 2014-09-18 20:33:08