selfPython中这个词的用途是什么?我知道它指的是从该类创建的特定对象,但我不明白为什么需要将它明确地作为参数添加到每个函数中。为了说明,在 Ruby 中我可以这样做:
self
class myClass def myFunc(name) @name = name end end
我很容易理解。但是在 Python 中,我需要包括self:
class myClass: def myFunc(self, name): self.name = name
谁能告诉我这个?这不是我在(诚然有限的)经验中遇到的。
您需要使用的原因self.是因为 Python 不使用@语法来引用实例属性。Python 决定以一种使方法所属的实例自动 传递 但不自动 接收 的方式来执行方法:方法的第一个参数是调用该方法的实例。这使得方法与函数完全一样,并让您自己使用实际名称(尽管self这是惯例,当您使用其他东西时人们通常会皱眉头。)self对于代码来说并不是特别的,它只是另一个对象.
self.
@
Python 可以做一些其他的事情来区分普通名称和属性——像 Ruby 那样的特殊语法,或者像 C++ 和 Java 那样需要声明,或者更不同的东西——但它没有。Python 完全是为了让事情变得明确,让事情变得显而易见,虽然它并不完全在任何地方都这样做,但它确实为实例属性做到了。这就是为什么分配给实例属性需要知道要分配给哪个实例,这就是为什么它需要self..