在學習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的解釋 詳解 深入剖析之類的文章數不勝數,可是要麼太簡,要麼太繁,要麼示範不夠直觀,...