Re: [討論] Python 3.10將加入Switch-Case語句
我個人是很討厭很多if-else, 或是switch case.
並不是說不好, 只是很容易出現有些section是code, 有些是function.
案子急一點, 重覆的code就會很多.
幾百個if-else/switch-case就有機會變成上萬行的code. 這個就很阿雜了.
就之前數字區間的code, 我是會往這個方向走
import operator
def over_100m(s):
print('over 100m')
def ten_to_100m(s):
print('10 - 100m')
def zero_to_ten(s):
print('0 - 10')
def is_zero(s):
print('0')
def is_negative(s):
print('< 0')
map = {(operator.ge, 100000000): over_100m,
(operator.ge, 10): ten_to_100m,
(operator.gt, 0): zero_to_ten,
(operator.eq, 0): is_zero,
(operator.lt, 0): is_negative}
eigen_spectrum = [120000000, 1000, 10, 8, 0, -10]
for s in eigen_spectrum:
for c in map:
if c[0](s, c[1]):
map[c](s)
break
這樣至少可以強迫分工的時候, 有一個列表可以作維護.
不過coding style這個真的見人見智, 我是不覺得有絕對好壞之分.
--
想著根本還沒發生的"幾百個if",然後過度優化成這樣
可讀性直接差了一個等級
如果插了一個區間是10-1000 做A, 1000-100m 做B 你
這段 code 要改多少地方? 再看看下面那段 code 可讀
性 這樣真的有比較好嗎
無視我第一句推文好了 跟 if-else 改的量差不多
毫無緣由的refactor十之八九是無意義的
原來第一時間想到的算是最佳(笑), 還refactoring...
4
話說我只是想分享一下我前一陣子在 twitter 上面看到的討論 簡短的來說就是某 PL 強者認真的研究了一下 PEP 622,然後提出了質疑。 (對,我知道不是 635 但我只是要分享這件有趣的事情) 先附上原文: TL;DR 是這樣的8
一回神竟然引發這些有趣的討論. 來稍微介紹一下我的工作背景: 我是在上市公司做高效能運算的單位主管. 算什麼無聊東西就不要問了, 不過特別強調, 不是博弈或者加密貨幣. :D 我的一個 block 通常會吃掉 100%~500% CPU, 生命期介於 2~48 hours. 執行階段佔用記憶體大概是 20GB~30GB 之間, 偶爾會用到 memory map.12
: : 沒有使用Python不知道生態系如何 : Google App上看到的文章 : 不知道各位大大對Switch加入有什麼看法 :8
討論這麼熱烈 可是各位有點進去把它看完嗎XD Python 3.10 的 Structural Pattern Matching 不是單純的 switch-case 而已 它的 case 裡是還可以放變數給它賦值的(不知道怎麼準確描述 舉個官網的例子,還可以這樣用:22
首Po上面說2006年 PEP 3103就建議實施switch-case語句。但是,在PyCon 2007上的一項民意調查未獲得對該功能的支持後,Python開發人員將其刪除。 沒有使用Python不知道生態系如何 Google App上看到的文章 不知道各位大大對Switch加入有什麼看法
29
Re: [閒聊] 積分選角隱藏隊友名字 如何查戰績?========警告======= 本文僅用於學術教育目的 請勿使用任何方法去查詢隊友ID 看到任何宣稱可以在積分查隊友的APP或網頁也不要使用 否則你的帳號會被BAN 14天 ===================22
[賽果] ATP MIAMI 8強賽果(8)Hubert Hurkacz def (1)Daniil Medvedev 7-6(7) 6-3 (6)Casper Ruud def (2) Alexander Zrerev 6-3 1-6 6-3 Francisco Cerundolo def (9) Jannik Sinner 4-1 (RET) (14) Carlos Alcaraz def Miomir Kecmanovic 6-7(5) 6-3 7-6(5) 衛冕者成功阻斷Medvedev重回球王路,西班牙小將連續大師賽4強。17
[柏拉] 夏夏夏夏夏AV馬西-叫阿嬤轉也會過通關隊伍資訊 【請註明AllMax AM) 或 DualMax (DM) 或 武裝龍刻 (*)】 通關圖片或影片: 攻略正文: R1:1C到夏馬西跳,然後手轉7C帶走16
[紀錄] 大滿貫史上男單決賽輸二贏三 (2022 更新)感謝 yevvi 大提供開放年代以前的數據,在此補上 (請容許我借用大大的上色習慣) 開放年代以後:(開放年代以前請見更下方) 法網 1974 Bjorn Borg (SWE) def. Manuel Orantes (ESP)10
Re: [情報] Murray獨居史上最多輸二追三逆轉澳網 法網 溫網 美網 年終 戴杯 超九 奧運 大滿貫杯 其他 總計 Murray 1 3 2 4 0 1 0 0 0 0 11 Becker 2 1 1 3 0 2 0 0 0 1 10 Krickstein 1 1 1 5 0 0 2 0 0 0 10 Federer 1 3 3 2 0 0 1 0 0 0 108
[賽果] 蒙地卡羅 男單 4/15賽果Alejandro Davidovich Fokina def. Taylor Fritz 2-6 6-4 6-3 Grigor Dimitrov def. Hubert Hurkacz 6-4 3-6 7-6(2) Stefanos Tsitsipas def. Diego Schwartzman 6-2 6-7(3) 6-4 Alexander Zverev def. Jannik Sinner 5-7 6-3 7-6(5) Hurkacz, Sinner, Fritz 均只步8強QQX
[請益] python 的寫法?因為看了很多程式 有一些程式,特別愛寫 def~~~~~~~~~~~~~~~~~~~~~ 但是有一些程式 卻都沒有寫def,只有寫 OOO = XXX 然後就寫下去了3
[問卦] 有沒有foo()的八卦常常在程式網站上看到 def foo(): // This is a function 這種東西,跟hello world 一樣普遍, 有沒有hoo()的八卦啊?為啥這麼常看到它? --1
[情報] JAY B "Seasonal Hiatus"JAY B - "Seasonal Hiatus" 發行日期 2023.02.14 發行公司 Warner Music 企劃公司 CDNZA Records