self vs this

在看python的類別時,常會發現用到self,我查到這一篇Python self,我把它轉成繁體來看:『 類別的方法與普通的函式只有一個特別的區別——它們必須有一個額外的第一個引數名稱,但是在呼叫這個方法的時候你為這個引數賦值,Python會提供這個值。這個特別的變數指物件本身,按照慣例它的名稱是self。雖然你可以給這個引數任何名稱,但是 強烈建議 你使用self這個名稱——其他名稱都是不贊成你使用的。使用一個標準的名稱有很多優點——你的程式讀者可以迅速識別它,如果使用self的話,還有些IDE(整合式開發環境)也可以幫助你。

C++/Java/C#程式師的注釋
Python
中的self等價於C++中的self指標和JavaC#中的this參考。

你一定很奇怪Python如何給self賦值以及為何你不需要給它賦值。舉一個例子會使此變得清晰。假如你有一個類別稱為MyClass和這個類別的一個實體MyObject。當你呼叫這個物件的方法MyObject.method(arg1, arg2)的時候,這會由Python自動轉為MyClass.method(MyObject, arg1, arg2)——這就是self的原理了。

這也意味著如果你有一個不需要引數的方法,你還是得給這個方法定義一個self數。』

這樣就比較容易懂了!

感謝你看到這裡,很快就可以離開了,但最好的獎勵行動就是按一下幫我分享或留言,感恩喔~

點我分享到Facebook

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *