你们更偏向那种形式?

2014-11-20 10:19:03 +08:00
 66450146
https://gist.github.com/LeeroyDing/9fb16913fc7aa306ad1e
4955 次点击
所在节点    程序员
35 条回复
21grams
2014-11-20 10:30:44 +08:00
一般来说第二种,可读性更好
yjsslab
2014-11-20 10:49:44 +08:00
尽量不在if里使用否定吧,也就是尽量不用unless
vulgur
2014-11-20 10:55:45 +08:00
我是第一种,不过不写“is not None”,就是“if something”
tabris17
2014-11-20 10:59:43 +08:00
分清主次

big_block_of_code()是程序的主干

something is None 之后是分支,次要的

应该把次要的分支写在if里
jimwoo
2014-11-20 11:05:31 +08:00
- -!什么东西??看不懂!!我只看到了标题!
jinyang656
2014-11-20 11:37:18 +08:00
@jimwoo 因为lz放了个gist,但是由于某些原因就看不到了 你懂的
mulog
2014-11-20 11:42:08 +08:00
@vulgur 这两个语义是不一样的 不是任何时候都能替换的哦。。

至于LZ的问题 我个人同意@tabris17 把相对来说更“异常”的情况处理写到if里
rwx
2014-11-20 11:59:47 +08:00
个人来说第二种
习惯把异常或者错误情况排除之后再写主逻辑,尽可能减少if嵌套
onlyice
2014-11-20 12:08:01 +08:00
@jimwoo 我也看不到东西,是图片没刷出来?
faceair
2014-11-20 12:18:46 +08:00
@jimwoo
@onlyice

gist被dns污染 推荐chinadns
Ge4Los
2014-11-20 13:06:53 +08:00
我用第二种, 优先跳出异常或错误, 然后执行主要代码;
主要代码的缩进会靠前, 更容易阅读
ytll21
2014-11-20 13:26:04 +08:00
说看不见的看这个
# First style
if something is not None: # or whatever condition
big_block_of_code()

# Second style
if something is None: # or whatever condition
continue # or return None or whatever
big_block_of_code()
jimwoo
2014-11-20 13:31:17 +08:00
@faceair 我擦~我第一次来V2EX……果断落伍了!
xidianlz
2014-11-20 13:35:43 +08:00
if something is not None:
为啥不用
if something:
这样不是更pythonic一点?
Sylv
2014-11-20 13:38:29 +08:00
@xidianlz 这两个是有区别的,例如 something = 0
xudshen
2014-11-20 13:39:16 +08:00
第二个
xudshen
2014-11-20 13:40:30 +08:00
相对来说少缩进一层,
imn1
2014-11-20 13:40:46 +08:00
貌似这两个逻辑不同

单一条件不会有太大区别,只是可读性的问题,如果多条件,可以考虑以下短路方式减少判断
rebornix
2014-11-20 14:02:41 +08:00
如果代码比较复杂,我觉得通过fast return来减少内嵌层级比较好。倾向第二种。
clino
2014-11-20 14:52:12 +08:00
@faceair 我用chinadns一样不行阿

2014-11-20 14:51:10 INFO request gist.github.com
2014-11-20 14:51:10 INFO response gist.github.com: [('203.161.230.171', 1, 1)]

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

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

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

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

© 2021 V2EX