Python必須在方法定義和調(diào)用中顯示使用“self”的原因-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線(xiàn)動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買(mǎi)多久送多久,劃算不套路!

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶(hù)創(chuàng)新互聯(lián)還提供了含山免費(fèi)建站歡迎大家使用!

小編給大家分享一下Python必須在方法定義和調(diào)用中顯示使用“self”的原因,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討方法吧!

為什么Python必須在方法定義和調(diào)用中顯示使用“self”?

這個(gè)想法借鑒了 Modula-3 語(yǔ)言。出于多種原因它被證明是非常有用的。

首先,更明顯的顯示出,使用的是方法或?qū)嵗龑傩远皇蔷植孔兞俊?/strong>

閱讀 self.x 或 self.meth() 可以清楚地表明,即使您不知道類(lèi)的定義,也會(huì)使用實(shí)例變量或方法。

在 C++ 中,可以通過(guò)缺少局部變量聲明來(lái)判斷(假設(shè)全局變量很少見(jiàn)或容易識(shí)別) —— 但是在 Python 中沒(méi)有局部變量聲明,所以必須查找類(lèi)定義才能確定。

一些 C++ 和 Java 編碼標(biāo)準(zhǔn)要求實(shí)例屬性具有 m_ 前綴,因此這種顯式性在這些語(yǔ)言中仍然有用。

其次,這意味著如果要顯式引用或從特定類(lèi)調(diào)用該方法,不需要特殊語(yǔ)法。

在 C++ 中,如果你想使用在派生類(lèi)中重寫(xiě)基類(lèi)中的方法,你必須使用 :: 運(yùn)算符 -- 在 Python 中你可以編寫(xiě) baseclass.methodname(self, <argumentlist>)。

這對(duì)于 __init__() 方法非常有用,特別是在派生類(lèi)方法想要擴(kuò)展同名的基類(lèi)方法,而必須以某種方式調(diào)用基類(lèi)方法時(shí)。

最后,它解決了變量賦值的語(yǔ)法問(wèn)題:

為了 Python 中的局部變量(根據(jù)定義?。┰诤瘮?shù)體中賦值的那些變量(并且沒(méi)有明確聲明為全局)賦值,就必須以某種方式告訴解釋器一個(gè)賦值是為了分配一個(gè)實(shí)例變量而不是一個(gè)局部變量,它最好是通過(guò)語(yǔ)法實(shí)現(xiàn)的(出于效率原因)。

C++ 通過(guò)聲明來(lái)做到這一點(diǎn),但是 Python 沒(méi)有聲明,僅僅為了這個(gè)目的而引入它們會(huì)很可惜。

使用顯式的 self.var 很好地解決了這個(gè)問(wèn)題。類(lèi)似地,對(duì)于使用實(shí)例變量,必須編寫(xiě) self.var 意味著對(duì)方法內(nèi)部的非限定名稱(chēng)的引用不必搜索實(shí)例的目錄。

換句話(huà)說(shuō),局部變量和實(shí)例變量存在于兩個(gè)不同的命名空間中,您需要告訴 Python 使用哪個(gè)命名空間。

看完了這篇文章,相信你對(duì)Python必須在方法定義和調(diào)用中顯示使用“self”的原因有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝各位的閱讀!

標(biāo)題名稱(chēng):Python必須在方法定義和調(diào)用中顯示使用“self”的原因-創(chuàng)新互聯(lián)
URL鏈接:http://bm7419.com/article40/dehpeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、響應(yīng)式網(wǎng)站企業(yè)網(wǎng)站制作、動(dòng)態(tài)網(wǎng)站、品牌網(wǎng)站建設(shè)、App開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)