python 關於類中的self的詳解和使用

2021-10-05 20:00:43 字數 1704 閱讀 2957

在建立乙個類的過程中,會發現這個self會時不時的出現,而且是自動就出現的,這個self究竟是何方神聖呢?

因為略懂英語的緣故,我知道self是自己的意思,初步猜測這個self就是指類自己。驗證一下吧。

class

dog():

name =

'哈士奇'

defspeak

(self)

:print

(self)

dog1 = dog(

)dog1.speak(

)print

(dog1)

print

(dog)

輸出為:

<main.dog object at 0x000001a2a6134748>

<main.dog object at 0x000001a2a6134748>

我們發現,列印dog1這個物件和列印self是一樣的,說明這個self就是乙個形參,指向的是建立的這個物件本身。

再來看一下,建立多個物件時:

class

dog():

name =

'哈士奇'

defspeak

(self)

:print

(self)

dog1 = dog(

)dog2 = dog(

)dog3 = dog(

)dog1.speak(

)print

(dog1)

dog2.speak(

)print

(dog2)

dog3.speak(

)print

(dog3)

結果:

<main.dog object at 0x000001a2a618ec88>

<main.dog object at 0x000001a2a618ec88>

<main.dog object at 0x000001a2a618eda0>

<main.dog object at 0x000001a2a618eda0>

<main.dog object at 0x000001a2a618e7b8>

<main.dog object at 0x000001a2a618e7b8>

結果已經顯而易見了,這樣我們在使用類時,就能隨心所欲了。

事實上,剛才說過了,這個self就是乙個形參,形參的名字我們可以隨便取,都是一樣的,只不過我們習慣上用self。

class

dog():

name =

'哈士奇'

defspeak

(lala)

:print

(f'我是'

)dog1 = dog(

)dog1.speak(

)

我是哈士奇

注意:class中沒有函式的閉包,方法中不可直接使用類中的屬性,必須通過self來傳遞。

聊聊python類中的self

在學習python類的時候會發現幾乎無一例外的會傳入引數self,self到底是什麼呢?其實 如下 class test def prt self print self print self.class t test t.prt 結果為 main test object at 0x104b6d410...

關於python中self的理解

self可以這麼理解 class就是表示 汽車 然後 init 是一些汽車的基本定義,比如要有發動機,要有方向盤 在這個定義的過程中,可能需要一種引用,比如現在北京要求汽車都要裝自檢測系統,監測系統統計資料必定是某一輛車它自身的,是乙個 例項 邦定的行為,你的檢測功能不會也不允許去收集其他汽車的資料...

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 ...