Pocoo风格指南建议使用break
,continue
和return
语句来避免深度嵌套的代码。你会怎么做?
问问题
240 次
2 回答
3
一个简单的例子是,而不是这个:
for item in seq:
if someCondition:
# Here is our code block
if blah:
more.stuff()
你可以这样做
for item in seq:
if not someCondition:
continue
# Now our code block is here
if blah:
more.stuff()
请注意,后者保存了缩进级别。显然你不能总是这样做,但在某些情况下,它提高了在开始时处理“如果 X 则立即停止”条件的可读性,而不必将一大段代码包装在一个if
块中。
于 2012-09-01T22:13:15.120 回答
2
例如,不要写:
if param1Valid:
if param2Valid:
....
您可以使用保护条款:
if not param1Valid:
return
if not param2Valid:
return
....
许多文章颂扬了保护条款的优点:
- http://blog.mafr.de/2009/06/12/a-case-for-guard-clauses/
- http://www.codinghorror.com/blog/2006/01/flattening-arrow-code.html
- http://sourcemaking.com/implementation-patterns/guard-clause
You can use the exact same approach inside a loop with the continue keyword.
于 2012-09-01T22:14:54.683 回答