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数。’

这样就比较容易懂了!