PTT評價

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

看板Soft_Job標題Re: [討論] Python 3.10將加入Switch-Case語句作者
electgpro
(Ray)
時間推噓 4 推:4 噓:0 →:2

: -----------------------------
: 還有那篇文章舉的,在PEP 635 裡的例子:
: -----------------------------

話說我只是想分享一下我前一陣子在 twitter 上面看到的討論

簡短的來說就是某 PL 強者認真的研究了一下 PEP 622,然後提出了質疑。

(對,我知道不是 635 但我只是要分享這件有趣的事情)


先附上原文:https://thautwarm.github.io/Site-32/Design/PEP622-1.html


TL;DR 是這樣的

a = 1
match [2, 3]:
case [0, 1]: ...
case [a, 2]: ...
case _:
print(a)


你們覺得會印出什麼?


然後我剛剛瞄過 PEP 635,有看到

"This PEP provides the technical specification for the match statement.
It replaces PEP 622"

但我沒看到 635 對這件事情有什麼對策,不過老實說我也只是路過~

--

※ PTT 留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 163.114.131.3 (法國)
PTT 網址

yyhsiu03/30 10:56原本應該要是 1,但是試圖 match 第二個的時候被改成2了?

brianhsu03/30 21:23比較合理的行為,應該是 case 裡的 a,scope 應該只在 c

brianhsu03/30 21:23ase 接的那個 block ,而且會把外面的 a shadow 掉?

electgpro03/30 21:25樓上兩位有 get 到重點。讓我們坐看會發生什麼事

brianhsu03/30 21:26至少 Scala 是這樣處理的 XD

linlin11004/01 18:46Python的block就沒有作Scope 這沒有好的解法