[討論] Python 3.10將加入Switch-Case語句

作者: ohmylove347 (米特巴爾)   2021-03-26 18:26:11
https://reurl.cc/8yzA24
上面說2006年 PEP 3103就建議實施switch-case語句。但是,在PyCon 2007上的一項民意調查未獲得對該功能的支持後,Python開發人員將其刪除。
沒有使用Python不知道生態系如何
Google App上看到的文章
不知道各位大大對Switch加入有什麼看法
作者: dave123 (宅男就是傳奇)   2021-03-26 18:39:00
已知用火
作者: timTan (用口頭禪區分年記)   2021-03-26 19:05:00
規格叫做pattern matching
作者: hegemon (hegemon)   2021-03-26 19:30:00
蛇粉快來看看你們最愛的蛇蛇已知用火成這樣
作者: lee457088   2021-03-26 19:31:00
swtich: a: break b: break: nintendo: purchase.
作者: noahleft (NoahLeft)   2021-03-26 20:32:00
看起來蠻方便的,而且還可以避掉switch的break
作者: neo5277 (I am an agent of chaos)   2021-03-26 20:44:00
同一樓
作者: tnfshjcc (↖煞气a攜阿攜↘)   2021-03-26 20:51:00
dict加上functional programming就涵蓋大部份switch用途
作者: Muscovy (三分熟的鬧鐘)   2021-03-26 20:58:00
我從 2001 年開始用 python, 連 if-else 都很少用... XD應該這樣講, 在 python 裡如果出現一堆 nested statement通常是你有東西搞錯了... 這個我也不太會講.
作者: splitline (台ㄎ廢文王)   2021-03-26 21:18:00
他比 switch case 酷多ㄌ
作者: OrzOGC (洞八達人.拖哨天王)   2021-03-26 21:25:00
if太多我就會重寫了...真的是如上面講的有問題...
作者: tnfshjcc (↖煞气a攜阿攜↘)   2021-03-26 21:35:00
{"a": funcA, "b": funcB}.get(val, funcDefault)()funcA什麼的可以lambda x: x+123如果要最後有輸入
作者: Firstshadow (IamCatづミ'_'ミづ)   2021-03-27 02:43:00
不用if-else 都用while 可以ㄇ
作者: taipoo (要成功要積極)   2021-03-27 02:47:00
沒有也沒差,都已經用習慣了
作者: yyhsiu (hsiu)   2021-03-27 03:37:00
你可以定意__match__在class裡面,應該比一般 switch case有用吧
作者: aidansky0989 (alta)   2021-03-27 09:06:00
java跟js中都算很冷門的功能
作者: marktak (天祁)   2021-03-27 09:54:00
case final void sony;
作者: brianhsu (墳墓)   2021-03-27 10:51:00
Pattern matching 在 functional programming 還滿常用的吧?
作者: Muscovy (三分熟的鬧鐘)   2021-03-27 11:06:00
for/while 比 if-else 常出現無誤, 大概 10:1 的比例. XD譬如 try-catch, 上古神獸 C 就只有 if 的選擇.然後第二個例子我就舉不出來了, 因為真的想不到常見的.在我的環境, 都是很特別的狀況才會用到 if-else.
作者: dmeiki (熊麻吉)   2021-03-27 11:31:00
讓我想到OCaml
作者: TAMSHUI (讓我醉死在夢裡~)   2021-03-27 12:58:00
不知M大能否舉例完全不用if-else呢?Google了一下還是沒什麼想法@@
作者: Muscovy (三分熟的鬧鐘)   2021-03-27 13:50:00
不會到完全不寫 if 的程度啦,等一下我來整理一篇
作者: as30385438 (LCT)   2021-03-27 14:16:00
不用if就是用loop、dict的key放condition或一些DP手法寫python的常常追求所謂的pythonic,不過我自己是覺得simple is best,最直覺的寫法通常就是最好的
作者: csieflyman (風之驕子)   2021-03-27 14:37:00
從 java 轉 kotlin 後,就常用 enum / sealed class搭配 switch case 語法了。因為編譯器能檢查的寫法才是最好的
作者: fish0112 (魚)   2021-03-27 14:54:00
好奇+1 if else還是很常出現(寫java
作者: youtuuube000 (小孩)   2021-03-27 15:34:00
把條件判斷放在dict比用if else還更常用
作者: a78998042a (Benjimine)   2021-03-27 15:48:00
好奇怎麼寫+1
作者: WunoW (WunoW)   2021-03-27 20:44:00
誰說switch-case在js算冷門? 用超多好嗎 = =
作者: dave123 (宅男就是傳奇)   2021-03-28 01:32:00
有差嗎?轉換成硬體語言都是cond jump...換個寫法沒比較高級
作者: superpandal   2021-03-28 01:40:00
haha 又來了
作者: jamesho8743 (加拿大好美)   2021-03-28 08:15:00
能減少cond jump才是重點 或者branch 能讓cpu預測到
作者: DellSale999 (我好便宜)   2021-03-28 10:01:00
這樣才能寫狀態機啊
作者: otherman (總經理)   2021-03-28 17:31:00
沒寫過switch case就不算寫過程式…連寫script都不算

Links booklink

Contact Us: admin [ a t ] ucptt.com