[問題] pass 這指令有替代方案嗎?

看板Python作者 (番薯猴)時間8年前 (2017/12/12 17:24), 8年前編輯推噓10(10014)
留言24則, 9人參與, 9年前最新討論串1/1
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://www.ptt.cc/bbs/Python/M.1513070669.A.FF9.html ※ 編輯: henry8168 (60.248.17.229), 12/12/2017 17:25:23

12/12 17:28, 8年前 , 1F
print(err_msg) if DEBUG_MODE else None
12/12 17:28, 1F
感謝大大,成功了! ※ 編輯: henry8168 (60.248.17.229), 12/12/2017 17:33:39

12/12 18:00, 8年前 , 2F
原來這就是一行if的寫法阿… 推一個
12/12 18:00, 2F

12/12 18:07, 8年前 , 3F
包成function不是更方便?
12/12 18:07, 3F

12/12 18:09, 8年前 , 4F
不然就用logging
12/12 18:09, 4F
是啊,我現在其實改用 logging package 了 算是為了之前的我問的吧 XD ※ 編輯: henry8168 (60.248.17.229), 12/12/2017 18:35:58

12/13 05:08, 8年前 , 5F
if DEBUG_MODE: print(errmsg) 不就好了
12/13 05:08, 5F

12/13 17:36, 8年前 , 6F
樓上正解 不需要else的情況寫else幹嘛呢
12/13 17:36, 6F

12/13 17:36, 8年前 , 7F
而且這種語法幾乎各程式語言都有..
12/13 17:36, 7F

12/13 23:45, 8年前 , 8F
因為這樣就不pythonic惹XD
12/13 23:45, 8F

12/14 12:51, 8年前 , 9F
胡說八道, if [exp]: [stmt] 就是標準 Python, 硬在這裡
12/14 12:51, 9F

12/14 12:52, 8年前 , 10F
用 [exp] if [exp] else [exp] 才是莫名其妙, 這兩個語
12/14 12:52, 10F

12/14 12:52, 8年前 , 11F
意根本完全不一樣, 在這裡用後者反而是扭曲原意
12/14 12:52, 11F

12/14 13:12, 8年前 , 12F
推估應該是反串XD
12/14 13:12, 12F

12/14 20:04, 8年前 , 13F
是蠻怪的,而且改用logging也不會有else
12/14 20:04, 13F

12/14 20:04, 8年前 , 14F
那原本加else是為了?
12/14 20:04, 14F

12/15 07:27, 8年前 , 15F
XD這原本就是pythonic的寫法啊 你要鞭也鞭情境
12/15 07:27, 15F

12/15 07:27, 8年前 , 16F
別森7錯地方
12/15 07:27, 16F

12/15 08:42, 8年前 , 17F
原來if竟然可以不換行阿……
12/15 08:42, 17F

12/15 09:23, 8年前 , 18F
不是反串欸是認真這麼覺得, 大開眼界ㄎㄎㄎㄎㄎ
12/15 09:23, 18F

12/15 09:56, 8年前 , 19F
好喔clike最pythonic 而且我打那句根本也沒認真 結果
12/15 09:56, 19F

12/15 09:56, 8年前 , 20F
引來認真魔人我也很難辦
12/15 09:56, 20F
怎麼推文吵起來了...。我當初會想在後面接 if 純粹是想每行第一個指令是 print, 整齊一點而已。然後後綴的寫法無法省略 else 吧。 ※ 編輯: henry8168 (219.70.252.12), 12/16/2017 16:54:51

12/18 19:13, 8年前 , 21F
這怎麼會是pythonic的寫法 在不需要else的地方用else
12/18 19:13, 21F

12/18 19:13, 8年前 , 22F
? 我真的不懂
12/18 19:13, 22F

12/18 19:15, 8年前 , 23F
如果是後綴不能少 else 真的不建議這樣寫
12/18 19:15, 23F

01/10 13:24, 9年前 , 24F
感謝中文使用者出現 要認真也認真在情境
01/10 13:24, 24F
文章代碼(AID): #1QBw1D_v (Python)