想變成Python高手要了解的問(wèn)題
發(fā)布時(shí)間:2023-05-26 13:28:33 已幫助:11人 來(lái)源:北京猿來(lái)教育

很多初學(xué)Python的學(xué)員不知道該怎樣進(jìn)行有效的學(xué)習(xí),對(duì)于初學(xué)者而言,要做的就是專(zhuān)注于Python這一門(mén)語(yǔ)言,Python不僅可以用于開(kāi)發(fā)應(yīng)用程序,還可以用于解決算法和數(shù)據(jù)結(jié)構(gòu)問(wèn)題,那么想變成Python高手要了解的問(wèn)題呢?
使用縮進(jìn)分組非常優(yōu)雅,提高了普通Python程序的清晰度;由于沒(méi)有開(kāi)始/結(jié)束括號(hào),因此解析器感知分組與人類(lèi)讀者之間不會(huì)存在分歧;
2、為什么Python字符串不可變?
我們可以在創(chuàng)建時(shí)為它分配空間,并且存儲(chǔ)需求固定不變;Python中的字符串被視為與數(shù)字一樣“基本”,任何動(dòng)作都不會(huì)將值8更改為其他值。
3、為什么必須在方法定義和調(diào)用中使用“self”?
首先,明顯顯示出,使用的是方法或?qū)嵗龑傩远皇蔷植孔兞浚贿@意味著如果要顯式引用或從特定類(lèi)調(diào)用該方法,不需要特殊語(yǔ)法;最后,它解決了變量賦值的語(yǔ)法問(wèn)題。
4、為什么不能在表達(dá)式中賦值?
大多數(shù)是為了少打一些字的黑客方案,但使用任意或隱含的語(yǔ)法或關(guān)鍵詞,并不符合語(yǔ)言變更提案的簡(jiǎn)單標(biāo)準(zhǔn):它應(yīng)該直觀地向尚未被介紹到這一概念的人類(lèi)讀者提供正確的含義。
5、為什么lambda表達(dá)式不包含語(yǔ)句?
因?yàn)镻ython的語(yǔ)法框架不能處理嵌套在表達(dá)式內(nèi)部的語(yǔ)句。然而,在Python中,這并不是一個(gè)嚴(yán)重的問(wèn)題。
與其他語(yǔ)言中添加功能的lambda表單不同,Python的lambdas只是一種速記符號(hào),如果您懶得定義函數(shù)的話(huà)。
6、為什么可以將Python編譯為機(jī)器代碼,C或其他語(yǔ)言?
Cython將帶有可選注釋的Python修改版本編譯到C擴(kuò)展中。Nuitka是一個(gè)將Python編譯成C++代碼的新興編譯器,旨在支持完整的Python語(yǔ)言。要編譯成Java,可以考慮VOC。
7、為什么CPython不使用更傳統(tǒng)的垃圾回收方案?
在獨(dú)立的Python中,可以用GC庫(kù)提供的版本替換標(biāo)準(zhǔn)的malloc()和free(),嵌入Python的應(yīng)用程序可能希望它自己替代malloc()和free(),而可能不需要Python的。現(xiàn)在CPython可以正確地實(shí)現(xiàn)malloc()和free()。
8、CPython退出時(shí)為什么不釋放所有內(nèi)存?
當(dāng)Python退出時(shí),從全局命名空間或Python模塊引用的對(duì)象并不總是被釋放。如果存在循環(huán)引用,則可能發(fā)生這種情況C庫(kù)分配的某些內(nèi)存也是不可能釋放的。但是Python在退出時(shí)清理內(nèi)存并嘗試銷(xiāo)毀每個(gè)對(duì)象。
如果要強(qiáng)制Python在釋放時(shí)刪除某些內(nèi)容,請(qǐng)使用atexit模塊運(yùn)行一個(gè)函數(shù),強(qiáng)制刪除這些內(nèi)容。
9、為什么有單獨(dú)的元組和列表數(shù)據(jù)類(lèi)型?
雖然列表和元組在許多方面是相似的,但它們的使用方式通常是完全不同的。可以認(rèn)為元組類(lèi)似于Pascal記錄或C結(jié)構(gòu);可以作為一個(gè)組進(jìn)行操作。元組是不可變的。
列表更像其他語(yǔ)言中的數(shù)組。它們傾向于持有不同數(shù)量的對(duì)象,所有對(duì)象都具有相同的類(lèi)型,并且逐個(gè)操作。列表是可變的。
10、列表如何在CPython中實(shí)現(xiàn)?
當(dāng)添加或插入項(xiàng)時(shí),將調(diào)整引用數(shù)組的大小。并采用了一些巧妙的方法來(lái)提高重復(fù)添加項(xiàng)的性能;當(dāng)數(shù)組必須增長(zhǎng)時(shí),會(huì)分配一些額外的空間,以便在接下來(lái)的幾次中不需要實(shí)際調(diào)整大小。

北京5天Python爬蟲(chóng)課程
北京Linux云計(jì)算SRE工程師培訓(xùn)
北京紅帽RHCE認(rèn)證培訓(xùn)
北京高級(jí)網(wǎng)絡(luò)安全工程師培訓(xùn)
北京Linux云計(jì)算8天訓(xùn)練營(yíng)