真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python中self指的是什么

這篇文章主要介紹了python中self指的是什么,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

公司主營(yíng)業(yè)務(wù):做網(wǎng)站、網(wǎng)站設(shè)計(jì)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。成都創(chuàng)新互聯(lián)推出韓城免費(fèi)做網(wǎng)站回饋大家。

在學(xué)習(xí)如何定義類的過(guò)程中,無(wú)論是顯式創(chuàng)建類的構(gòu)造方法,還是向類中添加實(shí)例方法,都要求將 self 參數(shù)作為方法的第一個(gè)參數(shù)。例如,定義如下 Dog 類:

class Dog:
    def __init__(self):
        print("正在執(zhí)行構(gòu)造方法")
    # 定義一個(gè)jump()實(shí)例方法
    def jump(self):
        print("正在執(zhí)行jump方法")

Python 要求,類方法(構(gòu)造方法和實(shí)例方法)中至少要包含一個(gè)參數(shù),但并沒(méi)有規(guī)定此參數(shù)的名稱(完全可以叫任意參數(shù)名),之所以將類方法的第一個(gè)參數(shù)命名為 self,只是 Python 程序員約定俗成的一種習(xí)慣,這會(huì)使程序具有更好的可讀性。

那么,作為類方法的第一個(gè)參數(shù),self 參數(shù)的具體作用是什么呢?打個(gè)比方,如果把類比作造房子的圖紙,那么對(duì)類實(shí)例化后的對(duì)象才是真正可以住的房子,根據(jù)一張圖紙,我們可以設(shè)計(jì)出成千上萬(wàn)的房子,雖然每個(gè)房子長(zhǎng)相相似,但它們都有各自的主人。而類方法的 self 參數(shù),就相當(dāng)于每個(gè)房子的門鑰匙,它可以保證,每個(gè)房子的主人僅能進(jìn)入自己的房子。

如果你接觸過(guò)其他面向?qū)ο蟮木幊陶Z(yǔ)言(例如 C++),其實(shí) Python 類方法中的 self 參數(shù)就相當(dāng)于 C++ 中的 this 指針。

也就是說(shuō),同一個(gè)類可以產(chǎn)生多個(gè)對(duì)象,當(dāng)某個(gè)對(duì)象調(diào)用類方法時(shí),該對(duì)象會(huì)把自身的引用作為第一個(gè)參數(shù)自動(dòng)傳給該方法,換句話說(shuō),Python 會(huì)自動(dòng)綁定類方法的第一個(gè)參數(shù)指向調(diào)用該方法的對(duì)象。如此,Python解釋器就能知道到底要操作哪個(gè)對(duì)象的方法了。

對(duì)于構(gòu)造方法來(lái)說(shuō),self 參數(shù)(第一個(gè)參數(shù))代表該構(gòu)造方法正在初始化的對(duì)象。

因此,程序在調(diào)用實(shí)例方法和構(gòu)造方法時(shí),不需要為第一個(gè)參數(shù)傳值。例如,更改前面的 Dog 類,如下所示:

class Dog:
    def __init__(self):
        print(self,"在調(diào)用構(gòu)造方法")
    # 定義一個(gè)jump()方法
    def jump(self):
        print(self,"正在執(zhí)行jump方法")
    # 定義一個(gè)run()方法,run()方法需要借助jump()方法
    def run(self):
        print(self,"正在執(zhí)行run方法")
        # 使用self參數(shù)引用調(diào)用run()方法的對(duì)象
        self.jump()
dog1 = Dog()
dog1.run()
dog2 = Dog()
dog2.run()

上面代碼中,jump() 和 run() 中的 self 代表該方法的調(diào)用者,即誰(shuí)在調(diào)用該方法,那么 self 就代表誰(shuí),因此,該程序的運(yùn)行結(jié)果為:

<__main__.Dog object at 0x00000276B14B12B0> 在調(diào)用構(gòu)造方法
<__main__.Dog object at 0x00000276B14B12B0> 正在執(zhí)行run方法
<__main__.Dog object at 0x00000276B14B12B0> 正在執(zhí)行jump方法
<__main__.Dog object at 0x00000276B14B1F28> 在調(diào)用構(gòu)造方法
<__main__.Dog object at 0x00000276B14B1F28> 正在執(zhí)行run方法
<__main__.Dog object at 0x00000276B14B1F28> 正在執(zhí)行jump方法

上面程序中值得一提的是,當(dāng)一個(gè) Dog 對(duì)象調(diào)用 run() 方法時(shí),run() 方法需要依賴該對(duì)象自己的 jump() 方法。在現(xiàn)實(shí)世界里,對(duì)象的一個(gè)方法依賴另一個(gè)方法的情形很常見(jiàn),例如,吃飯方法依賴拿筷子方法,寫程序方法依賴敲鍵盤方法,這種依賴都是同一個(gè)對(duì)象的兩個(gè)方法之間的依賴。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享python中self指的是什么內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問(wèn)題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來(lái)學(xué)習(xí)!


文章名稱:python中self指的是什么
文章地址:http://weahome.cn/article/igogei.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部