作者henry8168 (番薯猴)
看板Python
标题[问题] pass 这指令有替代方案吗?
时间Tue Dec 12 17:24:26 2017
pass 很好用,常常可以在不想填东西的时候用这个应付过去。
不过有个情况是这样的,
print("ok") if True else pass
这种写法就会被编译器说错误。
我常常需要用这种写法,来避开在一些条件下不要执行这个动作。
像是
print(err_msg) if DEBUG_MODE else pass
有想过改成
print(err_msg) if DEBUG_MODE else print("", end="")
不过这种写法无法兼容 Python 2 和 Python 3。
请教一下各位大大有没有好的替代方案?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.248.17.229
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1513070669.A.FF9.html
※ 编辑: henry8168 (60.248.17.229), 12/12/2017 17:25:23
1F:推 johnlinvc: print(err_msg) if DEBUG_MODE else None 12/12 17:28
感谢大大,成功了!
※ 编辑: henry8168 (60.248.17.229), 12/12/2017 17:33:39
2F:推 alan23273850: 原来这就是一行if的写法阿… 推一个 12/12 18:00
3F:→ djshen: 包成function不是更方便? 12/12 18:07
4F:→ djshen: 不然就用logging 12/12 18:09
是啊,我现在其实改用 logging package 了
算是为了之前的我问的吧 XD
※ 编辑: henry8168 (60.248.17.229), 12/12/2017 18:35:58
5F:→ uranusjr: if DEBUG_MODE: print(errmsg) 不就好了 12/13 05:08
6F:推 aszx4510: 楼上正解 不需要else的情况写else干嘛呢 12/13 17:36
7F:→ aszx4510: 而且这种语法几乎各程式语言都有.. 12/13 17:36
8F:推 goldflower: 因为这样就不pythonic惹XD 12/13 23:45
9F:→ uranusjr: 胡说八道, if [exp]: [stmt] 就是标准 Python, 硬在这里 12/14 12:51
10F:→ uranusjr: 用 [exp] if [exp] else [exp] 才是莫名其妙, 这两个语 12/14 12:52
11F:→ uranusjr: 意根本完全不一样, 在这里用後者反而是扭曲原意 12/14 12:52
12F:推 Sunal: 推估应该是反串XD 12/14 13:12
13F:推 cphe: 是蛮怪的,而且改用logging也不会有else 12/14 20:04
14F:→ cphe: 那原本加else是为了? 12/14 20:04
15F:推 goldflower: XD这原本就是pythonic的写法啊 你要鞭也鞭情境 12/15 07:27
16F:→ goldflower: 别森7错地方 12/15 07:27
17F:推 alan23273850: 原来if竟然可以不换行阿…… 12/15 08:42
18F:→ uranusjr: 不是反串欸是认真这麽觉得, 大开眼界ㄎㄎㄎㄎㄎ 12/15 09:23
19F:推 goldflower: 好喔clike最pythonic 而且我打那句根本也没认真 结果 12/15 09:56
20F:→ goldflower: 引来认真魔人我也很难办 12/15 09:56
怎麽推文吵起来了...。我当初会想在後面接 if 纯粹是想每行第一个指令是 print,
整齐一点而已。然後後缀的写法无法省略 else 吧。
※ 编辑: henry8168 (219.70.252.12), 12/16/2017 16:54:51
21F:→ a1234567289: 这怎麽会是pythonic的写法 在不需要else的地方用else 12/18 19:13
22F:→ a1234567289: ? 我真的不懂 12/18 19:13
23F:→ a1234567289: 如果是後缀不能少 else 真的不建议这样写 12/18 19:15
24F:推 goldflower: 感谢中文使用者出现 要认真也认真在情境 01/10 13:24