在看python的類別時,常會發現用到self,我查到這一篇Python self,我把它轉成繁體來看:『 類別的方法與普通的函式只有一個特別的區別——它們必須有一個額外的第一個引數名稱,但是在呼叫這個方法的時候你不為這個引數賦值,Python會提供這個值。這個特別的變數指物件本身,按照慣例它的名稱是self
。雖然你可以給這個引數任何名稱,但是 強烈建議 你使用self
這個名稱——其他名稱都是不贊成你使用的。使用一個標準的名稱有很多優點——你的程式讀者可以迅速識別它,如果使用self
的話,還有些IDE(整合式開發環境)也可以幫助你。
給C++/Java/C#程式師的注釋
Python中的self
等價於C++中的self
指標和Java、C#中的this
參考。
你一定很奇怪Python如何給self
賦值以及為何你不需要給它賦值。舉一個例子會使此變得清晰。假如你有一個類別稱為MyClass
和這個類別的一個實體MyObject
。當你呼叫這個物件的方法MyObject.method(arg1, arg2)
的時候,這會由Python自動轉為MyClass.method(MyObject, arg1, arg2)
——這就是self
的原理了。
這也意味著如果你有一個不需要引數的方法,你還是得給這個方法定義一個self引
數。』
這樣就比較容易懂了!