关于return的细节问题

2011-09-07 20:04:20 +08:00
 tioover
比较常遇到,挺无关紧要的但是觉得有统一的方法比较好
if xxx:
result = True
else:
result = False
return result
这样好,还是
if xxx:
return True
else:
return False
这样?
-----------------------------------
if xxx:
//code
else:
return False
这样好,还是
if not xxx:
return False
//code
这样(可以减少一层缩进)?
5187 次点击
所在节点    Python
12 条回复
ssword
2011-09-07 20:12:12 +08:00
最后一个问题,更喜欢后者,缩进一多会影响心情的。
Hyperion
2011-09-07 20:13:45 +08:00
我比较喜欢直接return, 用if not先行阻断. "在for里用if, 还不如在if else之间用两个for"...

这属于个人风格问题吧?...
daqing
2011-09-07 20:30:24 +08:00
第一种情况,可以直接return xxx,而不需要if/else,因为那个表达式的结果,就是boolean值。

第二种情况,我喜欢后者,先return。
Echoldman
2011-09-07 21:01:44 +08:00
我对于函数/方法中return的使用这样:对于不同情况下的返回结果,存储在一个result变量里,最后再返回这个结果,也就是当“函数”/“方法”完全执行完毕再用return;因为异常而导致不得不提前结束“函数”/“方法”,直接用return,并返回错误代码(如果可能用一个代码表示)。
ro00
2011-09-07 21:03:03 +08:00
貌似我都随便用的...比较倾向直接return
dreampuf
2011-09-07 21:11:38 +08:00
个人风格问题.

一个入口,最好只有一个出口.
kaichen
2011-09-07 21:18:47 +08:00
我会看两部分的代码行数而定,如果其中一个很短的话就早点return出去;如果两部分都差不多就完整得写出if-else。
dndx
2011-09-07 21:33:15 +08:00
为了直观,我选择后者。
前者的风格比较像Pascal,说实话我不是很喜欢。
reus
2011-09-11 15:40:28 +08:00
我偏向第一种,因为如果要加代码的话,不需要大修改
oldman
2011-09-11 15:42:32 +08:00
如果是异常流,我倾向于用及早判断,及早返回;如果都是正常流,我倾向于同一出口(不过也别把if else 嵌的太离谱了)
Livid
2011-09-11 15:46:08 +08:00
也取决于上下文的嵌套程度。

引用来自 Pocoo Style Guide 的一句话:

Try to avoid too deeply nested code by cleverly placing break, continue and return statements.

http://www.pocoo.org/internal/styleguide/
lepture
2011-09-12 01:50:20 +08:00
if xxx:
result = True
else:
result = False
return result
这样好,还是
if xxx:
return True
else:
return False
这样?


if xxx:
return True
return False
这样好,不需要再加一个 else

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/17836

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX