簡單一句話,我們是夥伴
self 在定義時需要定義,但在呼叫時會自動傳入
self 的名字可以變更
self 總是指呼叫時的類的例項
下面就上面三點進行解釋
先看乙個例子
>>> class test(object):
... def testself(self):
... print(self)
...>>> t = test()
>>> t.testself()
<__main__.test object at>
從例子可以看出,self 實際上是類的物件
在 python 機制中,當我們執行 t.testself() 時,實際上執行的是 test.testself(t), 其會把生成的物件 t 傳遞給 self,所以實際列印出來的就是 t 了,因此,self 代表的是類的例項
所以說,當使用類的例項呼叫類的方法時,self 是不能夠省略的,因為 python 有自動傳遞引數
那換乙個角度想,如果直接執行 test.testself() 的話,是不是在定義類的時候把 self 去掉了,答案是肯定可以去掉的,因為這時候並沒有傳遞例項進去,但這樣適應就沒有意思了,對吧
另外,因為 self 僅僅只是代表乙個引數,所以他的名字也就可以變更了,但還是約定成俗的比較好
最後,因為我們傳進去的是相應類的例項物件,所以 self 也就總是指向呼叫時的類的例項
也就是說,某乙個類裡面的 self 不一定指向這個類的例項物件,可能是其他類的
2 4 2Python self擴充套件
總目錄 python 子目錄 在類基礎中簡單說過self的用法和含義。這裡我們細說一下。首先定義乙個類 class dog object pass dog dog 因為類有模板的作用,因此,可以在建立例項的時候,把我們認為必須繫結的屬性強制填寫進去。這裡就用到python當中的乙個內建方法 init...
Python self 雙下劃線
class ball def init self,name self.name name ball ball qwe ball.name qwe class ball def setname self,name self.name name defkick self print 我是 s self....
簡單理解SaaS
saas 在這種模式下,客戶不再像傳統模式那樣花費大量投資用於硬體 軟體 人員,而只需要支出一定的租賃服務費用,通過網際網路便可以享受到相應的硬體 軟體和維護服務,享有軟體使用權和不斷公升級,這是網路應用最具效益的營運模式。對使用者而言,和應用傳統軟體相比,軟體即服務 saas 具有四大基本特點,即...