Python面向物件中的self到底是什麼?
阿新 • • 發佈:2020-08-27
初次接觸類的概念,在學習的網頁上,對self的解釋是self是方法的一個引數,在方法呼叫的時候,這個引數是預設傳引數的
我們看一個例子
很多人學習python,不知道從何學起。
很多人學習python,掌握了基本語法過後,不知道在哪裡尋找案例上手。
很多已經做案例的人,卻不知道如何去學習更加高深的知識。
那麼針對這三類人,我給大家提供一個好的學習平臺,免費領取視訊教程,電子書籍,以及課程的原始碼!
QQ群:101677771
class Stu: def __init__(self,name,age): print("在__init__方法中id:",id(self)) self.name = name self.age = age def run(self): print("在run方法中",id(self)) print("{name} is running".format(name=self.name)) 123456789
接著我們打印出self在記憶體中的id試試
s = Stu("zr",18) print("s的記憶體地址",id(s)) s.run() 123
輸出如下
可以看出,在__init__函式,還是run函式,還是Stu例項化後的s,self在記憶體中的id都是相同的。
現在來解釋上面標記的那句話
self是方法的一個引數:可以很明顯的看到在上面的Stu類中,self是__init__方法中與name和age一樣的引數
在方法呼叫的時候,這個引數是預設傳引數的:我們在s = Stu(“zr”,18)中例項化Stu的時候,self引數我們並沒有去賦值,而是預設傳入的,誰例項化了Stu,誰就是self,__init__方法在執行時,self就是那個s