了讓初學(xué) Python 的程序員避免犯同樣的錯(cuò)誤,以下列出了我學(xué)習(xí) Python 時(shí)犯的三種錯(cuò)誤。這些錯(cuò)誤要么是我長(zhǎng)期以來(lái)經(jīng)常犯的,要么是造成了需要幾個(gè)小時(shí)解決的麻煩。 -- Pete Savage
本文導(dǎo)航
-1、 可變數(shù)據(jù)類型作為函數(shù)定義中的默認(rèn)參數(shù) …… 07%
-2、 可變數(shù)據(jù)類型作為類變量 …… 35%
-3、 可變的分配錯(cuò)誤 …… 53%
編譯自: https://opensource.com/article/17/6/3-things-i-did-wrong-learning-python作者: Pete Savage
譯者: polebug
這些錯(cuò)誤會(huì)造成很麻煩的問(wèn)題,需要數(shù)小時(shí)才能解決。
當(dāng)你做錯(cuò)事時(shí),承認(rèn)錯(cuò)誤并不是一件容易的事,但是犯錯(cuò)是任何學(xué)習(xí)過(guò)程中的一部分,無(wú)論是學(xué)習(xí)走路,還是學(xué)習(xí)一種新的編程語(yǔ)言都是這樣,比如學(xué)習(xí) Python。
為了讓初學(xué) Python 的程序員避免犯同樣的錯(cuò)誤,以下列出了我學(xué)習(xí) Python 時(shí)犯的三種錯(cuò)誤。這些錯(cuò)誤要么是我長(zhǎng)期以來(lái)經(jīng)常犯的,要么是造成了需要幾個(gè)小時(shí)解決的麻煩。
年輕的程序員們可要注意了,這些錯(cuò)誤是會(huì)浪費(fèi)一下午的!
這似乎是對(duì)的?你寫(xiě)了一個(gè)小函數(shù),比如,搜索當(dāng)前頁(yè)面上的鏈接,并可選將其附加到另一個(gè)提供的列表中。
def search_for_links(page, add_to=[]):new_links=page.search_for_links()
add_to.extend(new_links)
return add_to
從表面看,這像是十分正常的 Python 代碼,事實(shí)上它也是,而且是可以運(yùn)行的。但是,這里有個(gè)問(wèn)題。如果我們給 add_to 參數(shù)提供了一個(gè)列表,它將按照我們預(yù)期的那樣工作。但是,如果我們讓它使用默認(rèn)值,就會(huì)出現(xiàn)一些神奇的事情。
試試下面的代碼:
def fn(var1, var2=[]):var2.append(var1)
print var2
fn(3)
fn(4)
fn(5)
可能你認(rèn)為我們將看到:
[3][4]
[5]
但實(shí)際上,我們看到的卻是:
[3][3, 4]
[3, 4, 5]
為什么呢?如你所見(jiàn),每次都使用的是同一個(gè)列表,輸出為什么會(huì)是這樣?在 Python 中,當(dāng)我們編寫(xiě)這樣的函數(shù)時(shí),這個(gè)列表被實(shí)例化為函數(shù)定義的一部分。當(dāng)函數(shù)運(yùn)行時(shí),它并不是每次都被實(shí)例化。這意味著,這個(gè)函數(shù)會(huì)一直使用完全一樣的列表對(duì)象,除非我們提供一個(gè)新的對(duì)象:
fn(3, [4])
[4, 3]
答案正如我們所想的那樣。要想得到這種結(jié)果,正確的方法是:
def fn(var1, var2=None):if not var2:
var2=[]
var2.append(var1)
或是在第一個(gè)例子中:
def search_for_links(page, add_to=None):if not add_to:
add_to=[]
new_links=page.search_for_links()
add_to.extend(new_links)
return add_to
這將在模塊加載的時(shí)候移走實(shí)例化的內(nèi)容,以便每次運(yùn)行函數(shù)時(shí)都會(huì)發(fā)生列表實(shí)例化。請(qǐng)注意,對(duì)于不可變數(shù)據(jù)類型,比如元組[1]、字符串[2]、整型[3],是不需要考慮這種情況的。這意味著,像下面這樣的代碼是非常可行的:
def func(message="my message"):print message
這和上面提到的最后一個(gè)錯(cuò)誤很相像。思考以下代碼:
class URLCatcher(object):urls=[]
def add_url(self, url):
self.urls.append(url)
這段代碼看起來(lái)非常正常。我們有一個(gè)儲(chǔ)存 URL 的對(duì)象。當(dāng)我們調(diào)用 add_url 方法時(shí),它會(huì)添加一個(gè)給定的 URL 到存儲(chǔ)中。看起來(lái)非常正確吧?讓我們看看實(shí)際是怎樣的:
a=URLCatcher()a.add_url('http://www.google.com')
b=URLCatcher()
b.add_url('http://www.bbc.co.hk')
b.urls:
['http://www.google.com', 'http://www.bbc.co.uk']
a.urls:
['http://www.google.com', 'http://www.bbc.co.uk']
等等,怎么回事?!我們想的不是這樣啊。我們實(shí)例化了兩個(gè)單獨(dú)的對(duì)象 a 和 b。把一個(gè) URL 給了 a,另一個(gè)給了 b。這兩個(gè)對(duì)象怎么會(huì)都有這兩個(gè) URL 呢?
這和第一個(gè)錯(cuò)例是同樣的問(wèn)題。創(chuàng)建類定義時(shí),URL 列表將被實(shí)例化。該類所有的實(shí)例使用相同的列表。在有些時(shí)候這種情況是有用的,但大多數(shù)時(shí)候你并不想這樣做。你希望每個(gè)對(duì)象有一個(gè)單獨(dú)的儲(chǔ)存。為此,我們修改代碼為:
class URLCatcher(object):def __init__(self):
self.urls=[]
def add_url(self, url):
self.urls.append(url)
現(xiàn)在,當(dāng)創(chuàng)建對(duì)象時(shí),URL 列表被實(shí)例化。當(dāng)我們實(shí)例化兩個(gè)單獨(dú)的對(duì)象時(shí),它們將分別使用兩個(gè)單獨(dú)的列表。
這個(gè)問(wèn)題困擾了我一段時(shí)間。讓我們做出一些改變,并使用另一種可變數(shù)據(jù)類型 - 字典[4]。
a={'1': "one", '2': 'two'}
現(xiàn)在,假設(shè)我們想把這個(gè)字典用在別的地方,且保持它的初始數(shù)據(jù)完整。
b=ab['3']='three'
簡(jiǎn)單吧?
現(xiàn)在,讓我們看看原來(lái)那個(gè)我們不想改變的字典 a:
{'1': "one", '2': 'two', '3': 'three'}
哇等一下,我們?cè)倏纯?b?
{'1': "one", '2': 'two', '3': 'three'}
等等,什么?有點(diǎn)亂……讓我們回想一下,看看其它不可變類型在這種情況下會(huì)發(fā)生什么,例如一個(gè)元組:
c=(2, 3)d=c
d=(4, 5)
現(xiàn)在 c 是 (2, 3),而 d 是 (4, 5)。
這個(gè)函數(shù)結(jié)果如我們所料。那么,在之前的例子中到底發(fā)生了什么?當(dāng)使用可變類型時(shí),其行為有點(diǎn)像 C語(yǔ)言的一個(gè)指針。在上面的代碼中,我們令 b=a,我們真正表達(dá)的意思是:b 成為 a 的一個(gè)引用。它們都指向 Python 內(nèi)存中的同一個(gè)對(duì)象。聽(tīng)起來(lái)有些熟悉?那是因?yàn)檫@個(gè)問(wèn)題與先前的相似。其實(shí),這篇文章應(yīng)該被稱為「可變引發(fā)的麻煩」。
列表也會(huì)發(fā)生同樣的事嗎?是的。那么我們?nèi)绾谓鉀Q呢?這必須非常小心。如果我們真的需要復(fù)制一個(gè)列表進(jìn)行處理,我們可以這樣做:
b=a[:]
這將遍歷并復(fù)制列表中的每個(gè)對(duì)象的引用,并且把它放在一個(gè)新的列表中。但是要注意:如果列表中的每個(gè)對(duì)象都是可變的,我們將再次獲得它們的引用,而不是完整的副本。
假設(shè)在一張紙上列清單。在原來(lái)的例子中相當(dāng)于,A 某和 B 某正在看著同一張紙。如果有個(gè)人修改了這個(gè)清單,兩個(gè)人都將看到相同的變化。當(dāng)我們復(fù)制引用時(shí),每個(gè)人現(xiàn)在有了他們自己的清單。但是,我們假設(shè)這個(gè)清單包括尋找食物的地方。如果“冰箱”是列表中的第一個(gè),即使它被復(fù)制,兩個(gè)列表中的條目也都指向同一個(gè)冰箱。所以,如果冰箱被 A 修改,吃掉了里面的大蛋糕,B 也將看到這個(gè)蛋糕的消失。這里沒(méi)有簡(jiǎn)單的方法解決它。只要你記住它,并編寫(xiě)代碼的時(shí)候,使用不會(huì)造成這個(gè)問(wèn)題的方式。
字典以相同的方式工作,并且你可以通過(guò)以下方式創(chuàng)建一個(gè)昂貴副本:
b=a.copy()
再次說(shuō)明,這只會(huì)創(chuàng)建一個(gè)新的字典,指向原來(lái)存在的相同的條目。因此,如果我們有兩個(gè)相同的列表,并且我們修改字典 a 的一個(gè)鍵指向的可變對(duì)象,那么在字典 b 中也將看到這些變化。
可變數(shù)據(jù)類型的麻煩也是它們強(qiáng)大的地方。以上都不是實(shí)際中的問(wèn)題;它們是一些要注意防止出現(xiàn)的問(wèn)題。在第三個(gè)項(xiàng)目中使用昂貴復(fù)制操作作為解決方案在 99% 的時(shí)候是沒(méi)有必要的。你的程序或許應(yīng)該被改改,所以在第一個(gè)例子中,這些副本甚至是不需要的。
編程快樂(lè)!在評(píng)論中可以隨時(shí)提問(wèn)。
作者簡(jiǎn)介:
Pete Savage - Peter 是一位充滿激情的開(kāi)源愛(ài)好者,在過(guò)去十年里一直在推廣和使用開(kāi)源產(chǎn)品。他從 Ubuntu 社區(qū)開(kāi)始,在許多不同的領(lǐng)域自愿參與音頻制作領(lǐng)域的研究工作。在職業(yè)經(jīng)歷方面,他起初作為公司的系統(tǒng)管理員,大部分時(shí)間在管理和建立數(shù)據(jù)中心,之后在 Red Hat 擔(dān)任 CloudForms 產(chǎn)品的主要測(cè)試工程師。
via: https://opensource.com/article/17/6/3-things-i-did-wrong-learning-python
作者:Pete Savage[5] 譯者:polebug 校對(duì):wxy
本文由 LCTT 原創(chuàng)編譯,Linux中國(guó) 榮譽(yù)推出
[1]: 元組 - https://docs.python.org/2/library/functions.html?highlight=tuple#tuple
[2]: 字符串 - https://docs.python.org/2/library/string.html
[3]: 整型 - https://docs.python.org/2/library/functions.html#int
[4]: 字典 - https://docs.python.org/2/library/stdtypes.html?highlight=dict#dict
[5]: Pete Savage - https://opensource.com/users/psav
DEA 全稱 IntelliJ IDEA,是java編程語(yǔ)言開(kāi)發(fā)的集成環(huán)境。IntelliJ在業(yè)界被公認(rèn)為最好的java開(kāi)發(fā)工具,尤其在智能代碼助手、代碼自動(dòng)提示、重構(gòu)、JavaEE支持、各類版本工具(git、svn等)、JUnit、CVS整合、代碼分析、 創(chuàng)新的GUI設(shè)計(jì)等方面的功能可以說(shuō)是超常的。IDEA是JetBrains公司的產(chǎn)品,這家公司總部位于捷克共和國(guó)的首都布拉格,開(kāi)發(fā)人員以嚴(yán)謹(jǐn)著稱的東歐程序員為主。它的旗艦版本還支持HTML,CSS,PHP,MySQL,Python等。免費(fèi)版只支持Java,Kotlin等少數(shù)語(yǔ)言。
俗話說(shuō):"工欲善其事必先利其器",今天準(zhǔn)備和大家一起分享一下實(shí)際工作中能提升幸福感和工作效率的IDEA插件。
廢話不多說(shuō),let's go !!!
1Alibaba Java Coding Guidelines
【阿里巴巴代碼規(guī)范檢查插件】
在你需要檢查的代碼上面,點(diǎn)擊右鍵,選擇編碼規(guī)約掃描
將會(huì)出現(xiàn)如下所示的檢查結(jié)果,并會(huì)給出編碼規(guī)范和提示:
2GsonFormat
【jsonToBean】
在平時(shí)的開(kāi)發(fā)中,將json轉(zhuǎn)為Bean
3A8Translation
【翻譯的插件】
選中你要翻譯的漢語(yǔ)或英文,點(diǎn)擊鼠標(biāo)右鍵,選擇Translate, (快捷鍵是Alt+T)就會(huì)實(shí)現(xiàn)翻譯,不用再去切換屏幕使用翻譯軟件翻譯了。
4Maven Helper
【分析依賴沖突的插件】
此插件可用來(lái)方便顯示maven的依賴樹(shù),和顯示沖突,在我們梳理依賴時(shí)幫助很大。
5Free Mybatis plugin
【增強(qiáng)idea對(duì)mybatis支持的插件】
生成mapper xml文件 快速?gòu)拇a跳轉(zhuǎn)到mapper及從mapper返回代碼 mybatis自動(dòng)補(bǔ)全及語(yǔ)法錯(cuò)誤提示 集成mybatis generator gui界面 這個(gè)插件超級(jí)實(shí)用,可以從mapper接口跳轉(zhuǎn)到mybatis的xml文件中,還能找到對(duì)應(yīng)地方
6Grep Console
【日志高亮顯示插件】
可以Ctrl + Alt +S Other Settings進(jìn)行配色(顏色參考請(qǐng)搜索:電腦最護(hù)眼的色彩、顯示屏亮度亦如此)
7Lombok
當(dāng)我們創(chuàng)建一個(gè)實(shí)體時(shí),通常對(duì)每個(gè)字段去生成GET/SET方法,但是萬(wàn)一后面需要增加或者減少字段時(shí),又要重新的去生成GET/SET方法,非常麻煩。可以通過(guò)該插件,無(wú)需再寫(xiě)那么多冗余的get/set代碼。
注意:需要在pom引入依賴
<!--lombok用來(lái)簡(jiǎn)化實(shí)體類:需要安裝lombok插件-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
8Nyan progress bar
基于Idea使用的漂亮進(jìn)度條。把你的加載進(jìn)度條全都變成彩虹和貓咪
9FindBugs-IDEA
【Bug檢查插件】
在文件上或文件里面點(diǎn)擊鼠標(biāo)右鍵,選擇FingBugs
簡(jiǎn)單的bug能給你快速找回來(lái),什么NPE啥的,小兒科!推薦!!(嗓門(mén)大就說(shuō)一遍)
10Key Promoter X
你還在為記不住快捷鍵煩惱嗎,Key Promoter X可以幫助你快速記住常用的快捷鍵。當(dāng)你在idea中用鼠標(biāo)點(diǎn)擊菜單,它可以顯示對(duì)應(yīng)的快捷鍵以及點(diǎn)擊次數(shù)。使用一段時(shí)間后有助于過(guò)渡到更快、無(wú)鼠標(biāo)的開(kāi)發(fā)。
11JavaDoc
在項(xiàng)目中經(jīng)常要求寫(xiě)代碼注釋,否則不能通過(guò)代碼門(mén)禁,JavaDoc工具可以一鍵生成注釋。
插件安裝成功后在菜單欄 code -> JavaDocs可以找到
自動(dòng)生成注釋效果如下:
12ignore
項(xiàng)目開(kāi)發(fā)中通常會(huì)使用到git進(jìn)行版本管理,在提交代碼時(shí)經(jīng)常有人將本地的不必要的文件提交到代碼倉(cāng)庫(kù)中,使用.ignore插件可以很好解決這個(gè)問(wèn)題。插件安裝完成后會(huì)在項(xiàng)目中生成一個(gè).ignore文件,編輯該文件忽略一些動(dòng)態(tài)生成的文件,如class文件,maven的target目錄等。
13RainbowBrackets
彩虹括號(hào),代碼中有多個(gè)括號(hào)會(huì)顯示不同的顏色。
14Activate-power-mode
在敲代碼時(shí)有抖動(dòng)酷炫的特效,非常適合給前端小姐姐表演特技。(壞笑)
15CodeGlance
16GenerateAllSetter
17RestfulToolkit
18JRebel
熱門(mén)部署插件,讓你在修改完代碼后,不用再重新啟動(dòng),很實(shí)用!但是,不是免費(fèi)的,需要大家發(fā)揮下聰明才智自行百度破解!
19Json Parser
厭倦了打開(kāi)瀏覽器格式化和驗(yàn)證JSON?為什么不安裝JSON解析器并在IDE中使用離線支持呢?JSON解析器是一個(gè)用于驗(yàn)證和格式化JSON字符串的輕量級(jí)插件。
20aiXcode & codota
aiXcoder是一個(gè)強(qiáng)大的代碼完成器和代碼搜索引擎,基于最新的深度學(xué)習(xí)技術(shù)。它有可能向您推薦一整套代碼,這將幫助您更快地編寫(xiě)代碼。aiXcoder還提供了一個(gè)代碼搜索引擎,以幫助您在GitHub上搜索API用例。
類似功能的插件還有codota,codota基于數(shù)百萬(wàn)個(gè)開(kāi)源Java程序和您的上下文來(lái)完成代碼行,從而幫助您以更少的錯(cuò)誤更快地進(jìn)行編碼。新版本的codota提供以下功能:
比如我想知道list.stream.map(…)方法的參考使用,只需要光標(biāo)定位在map上,然后右鍵選擇菜單“Get relevant examples”或者使用快捷鍵“Ctrl + Shift + O”就可以快速搜索出來(lái)很多示例,非常方便。
來(lái)源:blog.csdn.net/CSDN_SAVIOR/article/details/122505538
作者 | Sara A. Metwalli
譯者 | 有數(shù)可據(jù)
出品 | CSDN(ID:CSDNnews)
新的 Python 版本推出了有趣的新功能。
Python 是當(dāng)今最流行的編程語(yǔ)言之一。它有廣泛的領(lǐng)域和應(yīng)用,從學(xué)習(xí)計(jì)算機(jī)科學(xué)的基礎(chǔ),到執(zhí)行復(fù)雜或者直接的科學(xué)計(jì)算任務(wù)來(lái)創(chuàng)建游戲。它的高級(jí)應(yīng)用甚至包含數(shù)據(jù)科學(xué)和量子計(jì)算。
Python的流行有很多原因。其中最主要的原因是Python和其他語(yǔ)言相比,通用性強(qiáng),簡(jiǎn)單易學(xué)。除此之外,Python的開(kāi)發(fā)和維護(hù)者——Python軟件基金會(huì)——一直致力于用新的方法改進(jìn)Python。
一周之前(2021年10月4日),一個(gè)新的Python版本發(fā)布了,Python 3.10。在新的版本中,Python 添加了獨(dú)特且有價(jià)值的功能,同時(shí)刪除了一些舊功能。我們可以將任何新軟件版本中添加或刪除的功能歸為多個(gè)類別,例如語(yǔ)法特性、添加到默認(rèn)庫(kù)或?qū)ΜF(xiàn)有特性的改進(jìn)。
Python 3.10 有幾個(gè)新的很酷的功能,使得使用 Python 成為一種更好的體驗(yàn)。在本文中,我將與您分享 6 個(gè)讓我最興奮的新特性。
作為一個(gè)每天寫(xiě)Python 、教Python 的人,我深知遇到語(yǔ)法錯(cuò)誤的挫敗感。盡管一旦你掌握了Python和編程,就很容易修復(fù)語(yǔ)法錯(cuò)誤,但是我們還是希望錯(cuò)誤消息能給我們更好的提示,以幫助我們更好地定位錯(cuò)誤并節(jié)省調(diào)試時(shí)間。
在Python 3.10中,兩個(gè)新特性使得我們可以更好地處理錯(cuò)誤,他們是更清楚的錯(cuò)誤消息以及精確的行號(hào)。比如,我們有以下代碼,包含一個(gè)字典和一個(gè)函數(shù)。但是我們忘記了字典結(jié)束的花括號(hào)“}”。
some_dict={1: "jack", 2: "john", 3: "james" ,a_results=a_useful_function()
在之前的Python版本中,錯(cuò)誤信息如下:
File "amazing_code.py", line 3 a_results=a_useful_function() ^ SyntaxError: invalid syntax # 無(wú)效的語(yǔ)法
但是,隨著新的錯(cuò)誤消息和行號(hào)的改進(jìn),新的錯(cuò)誤消息將包含更好的信息,例如準(zhǔn)確的錯(cuò)誤類型和精確的行號(hào)。
File "amazing_code.py", line 1 expected={1: "jack", 2: "john", 3: "james" , ^ SyntaxError: '{' was never closed # 未關(guān)閉的 “ { ”
這一新特性將有助于加快調(diào)試速度,并減少人們開(kāi)始學(xué)習(xí) Python 的挫敗感。
如果您使用過(guò) C++ 等其他編程語(yǔ)言,您可能希望 Python 有 switch 語(yǔ)句,這樣您就不必經(jīng)歷冗長(zhǎng)的 if、elif、elif、....、else 語(yǔ)句。好吧,Python 3.10 的新特性之一是添加了結(jié)構(gòu)化模式匹配,或者換句話說(shuō),具有以下語(yǔ)法的 switch、case 語(yǔ)句。
match subject: case <patt1>: <act1> case <patt2>: <act2> case <patt3>: <act3> case _: <action_default>
盡管 Python 是一種動(dòng)態(tài)類型的編程語(yǔ)言,但還是有一些方法可以使它的某些部分成為靜態(tài)類型的。比如,你正在寫(xiě)一個(gè)函數(shù),而屬性的類型對(duì)于函數(shù)的內(nèi)部通信很重要。在之前的版本中,你可以指定類型如下:
def func(num: int) -> int: return num + 5
但是,如果你要接受兩種類型,你就需要使用Union關(guān)鍵字。
def func(num: Union[int, float]) -> Union[int, float]: return num + 5
在新版Python中,你可以用“|”運(yùn)算符替代Union關(guān)鍵字,這樣會(huì)更直接。
def func(num: int | float) -> int | float: return num + 5
Python的樂(lè)趣之一就是zip()函數(shù)。它是一個(gè)內(nèi)置函數(shù),允許你同時(shí)遍歷多個(gè)序列,并組合其返回值。在之前的版本中,你可以對(duì)不同長(zhǎng)度的序列使用zip。但是,現(xiàn)在有了一個(gè)新的參數(shù),strict,用來(lái)檢查可遍歷對(duì)象是否長(zhǎng)度一致。
作為程序員,我們會(huì)說(shuō),“他在我的電腦上能運(yùn)行的”。代碼在一臺(tái)機(jī)器上運(yùn)行而不在另一臺(tái)機(jī)器上運(yùn)行的原因有很多;文本編碼可能會(huì)導(dǎo)致此類錯(cuò)誤。
在以前的 Python 版本中,如果沒(méi)有明確說(shuō)明編碼類型,首選的本地編碼可能會(huì)導(dǎo)致代碼在其他機(jī)器上失敗。在 Python 3.10 中,可以激活警告以通知用戶打開(kāi)文本文件沒(méi)有指定編碼類型。
異步編程是一個(gè)強(qiáng)大而先進(jìn)的編程范式,它從 3.5 版開(kāi)始就成為 Python 的一部分。在Python 3.10,有兩個(gè)新的異步的內(nèi)置功能aiter()和anext()使你的代碼更易讀。
當(dāng)我攻讀本科學(xué)位時(shí),我參加了幾門(mén)使用 C++ 或 Java 編寫(xiě)代碼和實(shí)現(xiàn)應(yīng)用程序的課程。但是,當(dāng)我要寫(xiě)畢業(yè)論文時(shí),我決定學(xué)習(xí)和使用 Python。那是差不多十年前的事了,我再也沒(méi)有回頭;每當(dāng)我解決問(wèn)題時(shí),Python就成了我首選的編程語(yǔ)言。
后來(lái),我開(kāi)始教授兒童計(jì)算機(jī)科學(xué)。我意識(shí)到 Python 正激勵(lì)年輕一代從事技術(shù)職業(yè)。除了容易讀寫(xiě),容易上手,我最喜歡Python的一點(diǎn)是Python軟件基金會(huì)的努力工作,保持Python與時(shí)俱進(jìn)。
Python的每個(gè)版本,都帶來(lái)了不起的新特性。這些特性是大部分Python程序員需要的,能讓我們高效寫(xiě)Python代碼。總之,它們讓人們寫(xiě)代碼更容易。本文中,我分享了讓我和我的學(xué)生興奮的Python 3.10的六個(gè)新特性。
參考鏈接:
https://towardsdatascience.com/6-new-awesome-features-in-python-3-10-a0598e87689f
https://docs.python.org/3/whatsnew/3.10.html
https://docs.python.org/zh-cn/3/whatsnew/3.10.html
*請(qǐng)認(rèn)真填寫(xiě)需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。