天天看點

python 函數參數self_Python類中self參數用法詳解

Python編寫類的時候,每個函數參數第一個參數都是self,一開始我不管它到底是幹嘛的,隻知道必須要寫上。後來對Python漸漸熟悉了一點,再回頭看self的概念,似乎有點弄明白了。

首先明确的是self隻有在類的方法中才會有,獨立的函數或方法是不必帶有self的。self在定義類的方法時是必須有的,雖然在調用時不必傳入相應的參數。

self名稱不是必須的,在python中self不是關鍵詞,你可以定義成a或b或其它名字都可以,但是約定成俗(為了和其他程式設計語言統一,減少了解難度),不要搞另類,大家會不明白的。

下例中将self改為myname一樣沒有錯誤:

class Person:

def __init__(myname,name):

myname.name=name

def sayhello(myname):

print ('My name is:',myname.name)

p=Person('aoteman')

print(p)

self指的是類執行個體對象本身(注意:不是類本身)。

class Person:

def __init__(self,name):

self.name=name

def sayhello(self):

print ('My name is:',self.name)

p=Person('aoteman')

print(p)

在上述例子中,self指向Person的執行個體p。 為什麼不是指向類本身呢,如下例子:

class Person:

def __init__(self,name):

self.name=name

def sayhello(self):

print ('My name is:',self.name)

p1 = Person('aoteman')

p2 = Person('xiaoyiyi')

print(p1)

如果self指向類本身,那麼當有多個執行個體對象時,self指向哪一個呢?

總結

self在定義時需要定義,但是在調用時會自動傳入。

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

更多關于Python類中self參數的用法請檢視下面的相關連結

本文标題: Python類中self參數用法詳解

本文位址: http://www.cppcns.com/jiaoben/python/300413.html