关于self
Python):
您需要使用 self
的原因。这是因为Python不使用@语法来引用实例属性。Python决定以一种使该方法所属的实例自动传递但不会自动接收的方式进行方法:方法的第一个参数是调用该方法的实例。这使得方法与函数完全相同,并保留实际名称供您使用(尽管
self 是惯例,当您使用其他东西时,人们通常会对您不满意。) self 对代码而言并不特殊,它只是另一个对象。
Python可以做一些其他事情来区分普通名称和属性-像Ruby这样的特殊语法,或者像C ++和Java这样的声明都需要这样做,或者也许还有其他不同-
但事实并非如此。Python的全部目的是使事情变得明确,使事情变得显而易见,尽管它并非在所有地方都做到这一点,但它确实为实例属性做到了。这就是为什么分配给实例属性需要知道要分配给哪个实例的原因,这就是为什么它需要
self ..
this
Oracle在Java中对大约进行解释(这里是源:Java该解释):
在实例方法或构造函数中, 这 是对当前对象的引用-当前对象正在调用其方法或构造函数。您可以使用 this
从实例方法或构造函数中引用当前对象的任何成员。使用 this 关键字的最常见原因是因为方法或构造函数参数对字段造成了阴影。



