激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語(yǔ)言編程技術(shù)及教程分享平臺(tái)!
分類(lèi)導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

香港云服务器
服務(wù)器之家 - 腳本之家 - Python - Python 居然開(kāi)始抄作業(yè)了,這次抄的是Rust

Python 居然開(kāi)始抄作業(yè)了,這次抄的是Rust

2021-10-28 21:38Python作業(yè)輔導(dǎo)員天元浪子 Python

眾所周知,Rust有兩樣鎮(zhèn)山之寶,一是安全的內(nèi)存模型,二是模式匹配。在內(nèi)存管理上,Python使用了傳統(tǒng)的垃圾回收的內(nèi)存模型,和Rust沒(méi)有多少可比性。隨著Python3.10的發(fā)布,模式匹配被引入到Python中,而且?guī)缀跏峭耆瞻崃薘ust的概

Python 居然開(kāi)始抄作業(yè)了,這次抄的是Rust

整個(gè)九月份,我都在忙一個(gè)js的項(xiàng)目。因?yàn)楹枚嗄瓴粚?xiě)js,動(dòng)手之前特地找了一些js的資料惡補(bǔ)半天,結(jié)果發(fā)現(xiàn)js越來(lái)越像Python了。且不說(shuō)js從基于原型的面向?qū)ο筠D(zhuǎn)向了基于類(lèi)的面向?qū)ο螅瑔问穷?lèi)型化數(shù)組(Typed Arrays)的引入,就讓用慣了NumPy的我喜出望外。另外,js的數(shù)組推導(dǎo)式和裝飾器,也幾乎是完全照抄了Python的作業(yè)。

進(jìn)入十月,Python社區(qū)指導(dǎo)委員會(huì)正式推出了Python3.10,距離上一個(gè)版本發(fā)布,正好過(guò)去了一年。記得Python3.9發(fā)布之后沒(méi)幾天,我寫(xiě)過(guò)一篇名為《危險(xiǎn)的轉(zhuǎn)變:Python正在從簡(jiǎn)明轉(zhuǎn)向臃腫,從實(shí)用轉(zhuǎn)向媚俗》的博文,著實(shí)吐槽了一番,正所謂愛(ài)之也深恨之也切。這次新版本發(fā)布,我自然不會(huì)放過(guò)嘗鮮的機(jī)會(huì),趕緊安裝嘗試了一下,卻發(fā)現(xiàn),一向特立獨(dú)行的Python居然開(kāi)始抄作業(yè)了,這次抄的是Rust

眾所周知,Rust有兩樣鎮(zhèn)山之寶,一是安全的內(nèi)存模型,二是模式匹配。在內(nèi)存管理上,Python使用了傳統(tǒng)的垃圾回收的內(nèi)存模型,和Rust沒(méi)有多少可比性。隨著Python3.10的發(fā)布,模式匹配被引入到Python中,而且?guī)缀跏峭耆瞻崃薘ust的概念。Rust支持模式匹配中的變量綁定、結(jié)構(gòu)體/元組解構(gòu)、守衛(wèi)條件判斷、數(shù)值范圍匹配等特性,Python照單全收,連下劃線 _ 匹配任意情形也原封不動(dòng)地繼承了過(guò)來(lái)。

讓我們一起來(lái)揭開(kāi)Pyhton3.10最重要的升級(jí)——模式匹配的蓋頭。

類(lèi)似C語(yǔ)言的switch case, Python的模式匹配最簡(jiǎn)單的應(yīng)用就是對(duì)字面值進(jìn)行匹配:

  1. >>>a=3
  2. >>>match(a):
  3. case1:
  4. print("a==1")
  5. case2:
  6. print("a==2")
  7. case_:#default
  8. print("other")
  9. other

case語(yǔ)句中,支持或操作:

  1. >>>importdatetime
  2. >>>n=datetime.datetime.now()
  3. >>>match(n.weekday()):
  4. case0|1|2|3|4:print("工作日")
  5. case5|6:print("周末")
  6. 工作日

除了字面值外,case語(yǔ)句,支持對(duì)上面提到的模式進(jìn)行解構(gòu),如對(duì)元組:

  1. >>>a=(0,1)
  2. >>>match(a):
  3. case(0,y):#匹配所有第0個(gè)元素是0的元組
  4. print(f"a[0]==0,a[1]=={y}")
  5. case(x,0):#匹配所有第1個(gè)元素是0的元組
  6. print(f"a[1]==0,a[0]=={x}")
  7. a[0]==0,a[1]==1

對(duì)列表:

  1. >>>cmd="lstest"
  2. >>>match(cmd.split()):
  3. case["ls",path]:print(f"顯示{path}中的文件和目錄")
  4. case["rm",path]:print(f"刪除{path}中的文件和目錄")
  5. case["cp",src,dest]:print(f"將{src}復(fù)制到{dest}")
  6. 顯示test中的文件和目錄

對(duì)字典:

  1. >>>a={"name":"xxx","age":40,"job":"程序員"}
  2. >>>match(a):
  3. case{"name":name,"age":age,"job":"程序員"}:
  4. print(f"他是一名程序員,名字叫{name},{age}歲了")
  5. case{"name":name,"age":age,"job":"教師"}:
  6. print(f"他是一名人民教師,名字叫{name},{age}歲了")
  7. 他是一名程序員,名字叫xxx,40歲了

對(duì)于類(lèi)對(duì)象,match case照樣可以使用如:

  1. >>>classPoint():
  2. def__init__(self,x,y):
  3. self.x=x
  4. self.y=y
  5. >>>a=Point(1,2)
  6. >>>match(a):
  7. casePoint(x=1,y=y):print(f"這是一個(gè)X坐標(biāo)為1的點(diǎn),它的Y坐標(biāo)為{y}")
  8. casePoint(x=x,y=2):print(f"這是一個(gè)Y坐標(biāo)為2的點(diǎn),它的X坐標(biāo)為{x}")
  9. 這是一個(gè)X坐標(biāo)為1的點(diǎn),它的Y坐標(biāo)為2

也可以用于多個(gè)類(lèi):

  1. >>>classProgrammer:
  2. def__init__(self,lang):
  3. self.lang=lang
  4. >>>classTeacher:
  5. def__init__(self,subject):
  6. self.subject=subject
  7. >>>a=Programmer("Python")
  8. >>>match(a):
  9. caseProgrammer(lang="Python"):print("咱們都是Pyhon程序員!")
  10. caseProgrammer():print("原來(lái)你也是一名程序員!")
  11. caseTeacher():print("向人民教師致敬!")
  12. 咱們都是Pyhon程序員!

case 語(yǔ)句后,還支持添加一個(gè)if語(yǔ)句,進(jìn)一步對(duì)匹配的條件進(jìn)行限制,這個(gè)if語(yǔ)句,被稱(chēng)之為“守衛(wèi)”。如:

  1. >>>classPoint():
  2. def__init__(self,x,y):
  3. self.x=x
  4. self.y=y
  5. >>>a=Point(2,2)
  6. >>>match(a):
  7. casePoint(x=x,y=y)ifx==y:print("這個(gè)點(diǎn)在斜率為1的直線上")
  8. casePoint(x=x,y=y)ifx==-y:print("這個(gè)點(diǎn)在斜率為-1的直線上")
  9. 這個(gè)點(diǎn)在斜率為1的直線上

美中不足的是,我沒(méi)有找到case語(yǔ)句中直接使用范圍的方法,但這個(gè)可以用守衛(wèi)來(lái)解決:

  1. >>>a=5
  2. >>>match(a):
  3. casexif1<=x<10:print("數(shù)字在1和10之間")
  4. casexif10<=x<20:print("數(shù)字在10和20之間")
  5. 數(shù)字在1和10之間

原文鏈接:https://mp.weixin.qq.com/s/kXblwnxsphb00ATDPfsdTA

延伸 · 閱讀

精彩推薦
970
主站蜘蛛池模板: 久久福利电影网 | 久国产精品 | 欧美精品成人一区二区在线观看 | 在线成人亚洲 | 91天堂国产在线 | 久久伊人国产精品 | 日本高清在线播放 | 男女生羞羞视频网站在线观看 | h色网站在线观看 | 国产精品久久久久久久久久电影 | 天天天干夜夜夜操 | 禁漫天堂久久久久久久久久 | 精品亚洲va在线va天堂资源站 | 成人福利在线观看 | 国产一区网址 | 伦理三区 | 牛牛碰在线视频 | h视频免费在线观看 | 久久免费视频7 | 啊哈不要啊 | 欧美日韩在线视频观看 | 亚洲成人涩涩 | 男男羞羞视频网站国产 | 国产免费久久久久 | 欧美黄在线 | 欧美日韩成人一区二区 | 欧美成年性h版影视中文字幕 | 免费高潮在线国 | 鲁丝片一区二区三区免费入口 | 亚洲精品一区中文字幕 | 国产一区二区在线免费播放 | 久久精品探花 | 国产亚洲精品久久久久5区 99精品视频在线 | 经典三级av在线 | 免费人成在线播放 | 国产91丝袜在线播放 | 毛片视频网站在线观看 | 亚洲无马在线观看 | 石原莉奈日韩一区二区三区 | 久久精品国产亚洲aa级女大片 | 羞羞的视频在线免费观看 |