这个重复的片段代码模式更好的pythonic成语

时间:2013-05-11 17:26:45

标签: python design-patterns idioms readability

我发现自己使用了这种代码模式,每次我都认为可能有一种更好,更清晰的表达方式:

do_something = True

# Check a lot of stuff / loops
for thing in things:
    ....
    if (thing == 'something'):
        do_something = False
        break

if (do_something):
    # Do something

基本上,“计划做某事,但如果随时随地发现这种特殊情况,就不要这样做”

也许这段代码非常好,但我想知道是否有人有更好的建议。

感谢任何输入

1 个答案:

答案 0 :(得分:9)

Python for循环可以有一个else块,如果这些循环没有被中断,则执行该块:

for thing in things:
    ...
    if (thing == 'something'):
        break
else:
    ... # Do something

此代码的工作方式与您的相同,但不需要标记。我认为这符合你更优雅的标准。