作者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/m.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