聊聊python類中的self

2021-10-08 01:34:18 字數 1088 閱讀 7230

在學習python類的時候會發現幾乎無一例外的會傳入引數self,self到底是什麼呢?其實

如下:

class

test

:def

prt(self)

:print

(self)

print

(self.__class__)

t = test(

)t.prt(

)

結果為

<__main__.test object at 0x104b6d410>

>

也可以直接在類中儲存self,如下

class

test

:def

func

(self)

: father = self

return father

t = test(

)father=t.func(

)print

(father==t)

print

(father.func(

).func())

# 還可以無限套娃

結果為:

true

<__main__.test object at 0x10fa3e390>

self也可以寫成其他的比如this什麼的,但是self意思更為明確而且約定俗成了。

如果整個類中沒有self那肯定是沒有靈魂的,但是類中的一些方法可以允許不傳入類,也就是靜態方法,這時候就需要@staticmethod裝飾一下:

class

test

: @staticmethod

deffunc

(name)

:print

("name is"

,name)

t = test(

)t.func(

"john"

)

結果為:

name is john

python類的方法中的self

class person def init myname,name myname.name name defsayhello myname print my name is myname.name p person bill print pself指的是類例項物件本身 注意 不是類本身 class ...

python中類的函式中的self

python編寫類的時候,每個函式引數第乙個引數都是self,一開始我不管它到底是幹嘛的,只知道必須要寫上。後來對python漸漸熟悉了一點,再回頭看self的概念,似乎有點弄明白了。首先明確的是self只有在類的方法中才會有,獨立的函式或方法是不必帶有self的。self在定義類的方法時是必須有的...

Python類和方法中的self

剛開始進入python的物件導向階段的學習。發現在給類寫方法時必須加上self引數,而方法 函式 塊中的變數 物件 名前有時加了self,有時沒加,常常被此示例程式弄得一頭霧水,於是老實回頭補課。網上關於這個self的解釋 詳解 深入剖析之類的文章數不勝數,可是要麼太簡,要麼太繁,要麼示範不夠直觀,...