欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

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

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

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

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

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

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

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

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

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

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

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

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

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

最后,它解決了變量賦值的語法問題:

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

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

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

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

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

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

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

廣告

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