在建立乙個類的過程中,會發現這個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 ...