【发布时间】:2020-08-25 12:33:41
【问题描述】:
我有一个实现__iter__ 的类,我有以下情况:
for i in MyClass():
if i == 'some condition':
break
# do other stuff
我需要能够处理迭代提前终止的情况。这可以在类实现中实现吗?
【问题讨论】:
-
@Tomer 该类还定义了
__enter__和__exit__,它目前可以用作上下文管理器、迭代器或两者兼而有之。如果__iter__已启动但未用尽,则需要进行一些“清理”。 -
是否必须立即进行清理?如果它可以等待,你可以把它贴在
__del__里面。 -
@0x5453 与其线程相关,所以最好尽快防止线程缠绵。
标签: python python-3.x iteration