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

python中self指的是什么-創(chuàng)新互聯(lián)

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

成都創(chuàng)新互聯(lián)2013年至今,先為海陵等服務(wù)建站,海陵等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為海陵企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

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

在學(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ù),但并沒有規(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è)方法的情形很常見,例如,吃飯方法依賴拿筷子方法,寫程序方法依賴敲鍵盤方法,這種依賴都是同一個(gè)對(duì)象的兩個(gè)方法之間的依賴。

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

標(biāo)題名稱:python中self指的是什么-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://chinadenli.net/article8/hggop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)網(wǎng)站改版標(biāo)簽優(yōu)化App設(shè)計(jì)微信小程序網(wǎng)站策劃

廣告

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

商城網(wǎng)站建設(shè)