python中類的函式中的self

2022-02-15 00:07:03 字數 1115 閱讀 5671

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

首先明確的是self只有在類的方法中才會有,獨立的函式或方法是不必帶有self的。self在定義類的方法時是必須有的,雖然在呼叫時不必傳入相應的引數。

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

class person:

def _init_(myname,name):

myname.name=name

def sayhello(myname):

print 'my name is:',myname.name

p=person('bill')

print p

self指的是類例項物件本身(注意:不是類本身)。

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的例項p。 為什麼不是指向類本身呢,如下例子:

class person:

def _init_(self,name):

self.name=name

def sayhello(self):

print 'my name is:',self.name

p1=person('bill')

print p1

如果self指向類本身,那麼當有多個例項物件時,self指向哪乙個呢?

總結

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

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

self總是指呼叫時的類的例項。

python類中的內建函式

init init 方法在類的乙個物件被建立時,馬上執行。這個方法可以用來對你的物件做一些你希望的初始化。注意,這個名稱的開始和結尾都是雙下劃線。例子 usr bin python filename class init.py class person def init self,name self...

python 類中函式

重點函式 new cls init self del self classa def new cls python的建構函式是new,不是init,可以有返回值 print 空間初始化 return super a,cls new cls 空間初始化 在例項化過程中自動執行 類級別函式 new函式的...

python中類的特點 Python中的類(一)

python中的類 一 一 應用場景 如果多個函式中有一些相同的引數時,轉換成物件導向。二 如何建立類 類是用來描述具有相同的屬性和方法的物件的集合。它定義了該集合中每個物件所共有的屬性和方法。物件是類的例項。class 類名 pass 三 類變數 類變數在整個例項化的物件中是公用的。類變數定義在類...