python中class里面的self是什么意思?
問題描述
def __init(self)
這個self什么意思:?
問題解答
回答1:self就是代表自己,self.name=’xxx’,就是說這個類的name屬性值是’xxx’,def _init_(self):xxxx就是在新建這個類的實例的時候,會自動執(zhí)行的方法,而def test(self):xxxx就是你可以調(diào)用的方法有self.test()。這樣說你是不是明白了?
回答2:self 指你將要引用的對象,在初始化時和調(diào)用方法時略有不同. 比如
class A: def __init__(self, name):self.name = name def printname(self):print(self.name)a = A(’hello’)a.printname()
在初始化對象時, self指代這個新創(chuàng)建的對象,所以a賦值給self,則self.name相當(dāng)于a.name, 所以為對象a創(chuàng)建了一個屬性name. 在調(diào)用方法時: self 指代你要引用的對象,就是要作用的對象,即a. 所以self被賦值為a. 所以print(self.name)相當(dāng)于print(a.name).
書籍: Python學(xué)習(xí)手冊 上有很詳細(xì)的解釋.
相關(guān)文章:
1. python 利用subprocess庫調(diào)用mplayer時發(fā)生錯誤2. python文檔怎么查看?3. python - Pycharm的Debug用不了4. javascript - 關(guān)于apply()與call()的問題5. datetime - Python如何獲取當(dāng)前時間6. javascript - nginx反向代理靜態(tài)資源403錯誤?7. html - eclipse 標(biāo)簽錯誤8. 請問PHPstudy中的數(shù)據(jù)庫如何創(chuàng)建索引9. 安全性測試 - nodejs中如何防m(xù)ySQL注入10. python - pycharm 自動刪除行尾空格
