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

作者: henry8168 (番薯猴)   2017-12-12 17:24:26
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。
請教一下各位大大有沒有好的替代方案?
作者: johnlinvc (阿翔)   2017-12-12 17:28:00
print(err_msg) if DEBUG_MODE else None
作者: alan23273850   2017-12-12 18:00:00
原來這就是一行if的寫法阿… 推一個
作者: djshen (djshen)   2017-12-12 18:07:00
包成function不是更方便?不然就用logging
作者: uranusjr (←這人是超級笨蛋)   2017-12-13 05:08:00
if DEBUG_MODE: print(errmsg) 不就好了
作者: aszx4510 (wind)   2017-12-13 17:36:00
樓上正解 不需要else的情況寫else幹嘛呢而且這種語法幾乎各程式語言都有..
作者: goldflower (金色小黃花)   2017-12-13 23:45:00
因為這樣就不pythonic惹XD
作者: uranusjr (←這人是超級笨蛋)   2017-12-14 12:51:00
胡說八道, if [exp]: [stmt] 就是標準 Python, 硬在這裡用 [exp] if [exp] else [exp] 才是莫名其妙, 這兩個語意根本完全不一樣, 在這裡用後者反而是扭曲原意
作者: Sunal (SSSSSSSSSSSSSSSSSSSSSSS)   2017-12-14 13:12:00
推估應該是反串XD
作者: cphe (魔鬼藏在垃圾筒裡)   2017-12-14 20:04:00
是蠻怪的,而且改用logging也不會有else那原本加else是為了?
作者: goldflower (金色小黃花)   2017-12-15 07:27:00
XD這原本就是pythonic的寫法啊 你要鞭也鞭情境別森7錯地方
作者: alan23273850   2017-12-15 08:42:00
原來if竟然可以不換行阿……
作者: uranusjr (←這人是超級笨蛋)   2017-12-15 09:23:00
不是反串欸是認真這麼覺得, 大開眼界ㄎㄎㄎㄎㄎ
作者: goldflower (金色小黃花)   2017-12-15 09:56:00
好喔clike最pythonic 而且我打那句根本也沒認真 結果引來認真魔人我也很難辦
作者: a1234567289 (蛋包飯)   2017-12-18 19:13:00
這怎麼會是pythonic的寫法 在不需要else的地方用else? 我真的不懂如果是後綴不能少 else 真的不建議這樣寫
作者: goldflower (金色小黃花)   2016-01-10 13:24:00
感謝中文使用者出現 要認真也認真在情境

Links booklink

Contact Us: admin [ a t ] ucptt.com