python最常見(jiàn)的序列類(lèi)型 python不需要類(lèi)型聲明,是不是直接包含了C 泛型的功能?
python不需要類(lèi)型聲明,是不是直接包含了C 泛型的功能?其實(shí)這應(yīng)該考慮兩個(gè)問(wèn)題(1)為什么Python不需要類(lèi)型聲明(2)泛型函數(shù)是否已經(jīng)用Python語(yǔ)言實(shí)現(xiàn)Python以數(shù)據(jù)存儲(chǔ)為中心,先將
python不需要類(lèi)型聲明,是不是直接包含了C 泛型的功能?
其實(shí)這應(yīng)該考慮兩個(gè)問(wèn)題
(1)為什么Python不需要類(lèi)型聲明
(2)泛型函數(shù)是否已經(jīng)用Python語(yǔ)言實(shí)現(xiàn)
Python以數(shù)據(jù)存儲(chǔ)為中心,先將數(shù)據(jù)存儲(chǔ)在內(nèi)存模型中,然后定義一個(gè)引用變量來(lái)引用值。至于在您的問(wèn)題中包含C泛型,我將清楚地告訴您,既然沒(méi)有類(lèi)型聲明,就沒(méi)有泛型。當(dāng)然,在Python中,如果給兩種不同的數(shù)據(jù)類(lèi)型進(jìn)行操作,它會(huì)直接告訴您異常。所以大多數(shù)時(shí)候,當(dāng)我們編寫(xiě)Python代碼時(shí),我們有意識(shí)地操作兩個(gè)相同類(lèi)型的數(shù)據(jù)。
既然Python是用C實(shí)現(xiàn)的,那為什么Python不能直接生成exe呢?
C語(yǔ)言實(shí)際上是一種“老”和“底層”語(yǔ)言。其執(zhí)行效率僅次于匯編語(yǔ)言。
它之所以古老是因?yàn)镃語(yǔ)言出現(xiàn)得很早。
盡管FORTRAN和COBOL比C語(yǔ)言出現(xiàn)得早,但現(xiàn)代主流操作系統(tǒng)(windows、Mac OS、Linux、IOS、Android、Unix)都是從C語(yǔ)言中誕生的。
最根本的原因是C語(yǔ)言被設(shè)計(jì)用來(lái)同時(shí)編寫(xiě)匯編語(yǔ)言。從理論上講,它可以用外匯來(lái)表示。匯編語(yǔ)言是最有效的語(yǔ)言。
所以Python是用C語(yǔ)言編寫(xiě)的也就不足為奇了。它與能否生成exe無(wú)關(guān)。
Exe文件是Windows平臺(tái)的專(zhuān)用格式。最簡(jiǎn)單的exe是com可執(zhí)行文件。EXE文件實(shí)際上由引導(dǎo)加載程序和解釋器組成。
由Python語(yǔ)言生成的代碼只能通過(guò)引導(dǎo)加載程序和解釋器作為EXE文件執(zhí)行。
因此Python生成EXE文件并不困難。只是它是否愿意提供的問(wèn)題。
為什么Python不需要定義int double char等類(lèi)型且可以直接高精度算法,而C 需要?
與C相比,這是Python的高級(jí)功能。在使用變量之前,您不需要定義變量的類(lèi)型。這讓初學(xué)者覺(jué)得很方便,但對(duì)于“老碼農(nóng)”來(lái)說(shuō),有一個(gè)很大的漏洞,只有在實(shí)際項(xiàng)目中使用的人才才有深刻的體會(huì)。
以前我在學(xué)習(xí)C的時(shí)候,也覺(jué)得先定義一個(gè)變量,然后再定義一個(gè)類(lèi)型是非常麻煩的,因?yàn)槲医?jīng)常用一個(gè)變量,我就可以保證我不會(huì)犯什么類(lèi)型的錯(cuò)誤。我覺(jué)得首先定義它的類(lèi)型不僅僅是一件事。
直到我做了幾個(gè)項(xiàng)目,我才意識(shí)到在使用變量之前定義變量類(lèi)型是多么必要。
最常見(jiàn)的例子是在實(shí)際項(xiàng)目中,為了便于以后的維護(hù),變量名應(yīng)該有一個(gè)易于理解的名稱,比如teacher,中文意思是teacher,所以我會(huì)用這個(gè)詞作為變量來(lái)定義teacher。
但是如果您在以下引用中編寫(xiě)techer,則不會(huì)在Python中報(bào)告錯(cuò)誤。Python將它定義為一個(gè)新變量,這將導(dǎo)致如果程序不運(yùn)行到這一行,您永遠(yuǎn)不會(huì)知道它是錯(cuò)誤的。或者運(yùn)行到這一行,程序可以正常運(yùn)行,但始終得不到正確的結(jié)果。
這將使您花費(fèi)大量時(shí)間來(lái)檢查,這比在使用變量之前定義變量是int還是STR要花更多的時(shí)間
!在C中,尚未定義此變量。編譯程序時(shí),將報(bào)告錯(cuò)誤。這樣可以省去很多不必要的麻煩。
有時(shí)如果你不小心,你就不會(huì)犯錯(cuò)誤。畢竟,在項(xiàng)目開(kāi)發(fā)中,您需要與其他人合作來(lái)編寫(xiě)代碼。你不能保證別人不會(huì)犯錯(cuò)。
雖然Python的語(yǔ)法比C的簡(jiǎn)單,但簡(jiǎn)單并不總是好的。對(duì)于程序來(lái)說(shuō),規(guī)則比簡(jiǎn)單更有效。
新手學(xué)python應(yīng)該如何選擇python2和python3?
這里我們說(shuō)python2通常指的是版本2.7,而python3指的是版本3.5及以上。
Python2和python3有一些語(yǔ)法問(wèn)題,因此這兩個(gè)版本的編譯器互不支持。
在過(guò)去,作為主流,Python2支持許多庫(kù),大多數(shù)人的項(xiàng)目都在Python2上運(yùn)行。所以,這就是為什么很多人沒(méi)有轉(zhuǎn)到3。但是現(xiàn)在Python3中的庫(kù)越來(lái)越多,許多基于Python2的社區(qū)和庫(kù)開(kāi)始停止更新。所以python3是一種趨勢(shì)。
如果這是一個(gè)介紹,我認(rèn)為可以學(xué)習(xí)Python 2或Python 3。畢竟,這些想法是相互關(guān)聯(lián)的。但如果沒(méi)有歷史負(fù)擔(dān),可以直接學(xué)習(xí)Python 3。畢竟,新版是一種趨勢(shì)。由于從零開(kāi)始學(xué)習(xí),從未來(lái)使用和工程的角度來(lái)看,python3將成為更主流的版本。
歡迎您的評(píng)論。