溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python類中的self到底是干啥的

發(fā)布時(shí)間:2020-07-14 18:37:11 來(lái)源:網(wǎng)絡(luò) 閱讀:246 作者:Python熱愛(ài)者 欄目:編程語(yǔ)言

Python編寫類的時(shí)候,每個(gè)函數(shù)參數(shù)第一個(gè)參數(shù)都是self,一開(kāi)始我不管它到底是干嘛的,只知道必須要寫上。后來(lái)對(duì)Python漸漸熟悉了一點(diǎn),再回頭看self的概念,似乎有點(diǎn)弄明白了。

首先明確的是self只有在類的方法中才會(huì)有,獨(dú)立的函數(shù)或方法是不必帶有self的。self在定義類的方法時(shí)是必須有的,雖然在調(diào)用時(shí)不必傳入相應(yīng)的參數(shù)。

self名稱不是必須的,在python中self不是關(guān)鍵詞,你可以定義成a或b或其它名字都可以,但是約定成俗(為了和其他編程語(yǔ)言統(tǒng)一,減少理解難度),不要搞另類,大家會(huì)不明白的。

下例中將self改為myname一樣沒(méi)有錯(cuò)誤:

class Person:
    def _init_(myname,name):
        myname.name=name
    def sayhello(myname):
        print 'My name is:',myname.name
p=Person('Bill')
print p

self指的是類實(shí)例對(duì)象本身(注意:不是類本身)。

'''
遇到問(wèn)題沒(méi)人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:××× 
尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書!
'''
class Person:
    def _init_(self,name):
        self.name=name
    def sayhello(self):
        print 'My name is:',self.name
p=Person('Bill')
print p

在上述例子中,self指向Person的實(shí)例p。 為什么不是指向類本身呢,如下例子:

class Person:
    def _init_(self,name):
        self.name=name
    def sayhello(self):
        print 'My name is:',self.name
p1=Person('Bill')
p2 = Person('Apple')
print p1

如果self指向類本身,那么當(dāng)有多個(gè)實(shí)例對(duì)象時(shí),self指向哪一個(gè)呢?

總結(jié)

self在定義時(shí)需要定義,但是在調(diào)用時(shí)會(huì)自動(dòng)傳入。

self的名字并不是規(guī)定死的,但是最好還是按照約定是用self

self總是指調(diào)用時(shí)的類的實(shí)例。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI