小编典典

“自我”这个词的目的是什么?

all

selfPython中这个词的用途是什么?我知道它指的是从该类创建的特定对象,但我不明白为什么需要将它明确地作为参数添加到每个函数中。为了说明,在
Ruby 中我可以这样做:

class myClass
    def myFunc(name)
        @name = name
    end
end

我很容易理解。但是在 Python 中,我需要包括self

class myClass:
    def myFunc(self, name):
        self.name = name

谁能告诉我这个?这不是我在(诚然有限的)经验中遇到的。


阅读 148

收藏
2022-02-25

共1个答案

小编典典

您需要使用的原因self.是因为 Python 不使用@语法来引用实例属性。Python 决定以一种使方法所属的实例自动 传递 但不自动
接收
的方式来执行方法:方法的第一个参数是调用该方法的实例。这使得方法与函数完全一样,并让您自己使用实际名称(尽管self这是惯例,当您使用其他东西时人们通常会皱眉头。)self对于代码来说并不是特别的,它只是另一个对象.

Python 可以做一些其他的事情来区分普通名称和属性——像 Ruby 那样的特殊语法,或者像 C++ 和 Java
那样需要声明,或者更不同的东西——但它没有。Python
完全是为了让事情变得明确,让事情变得显而易见,虽然它并不完全在任何地方都这样做,但它确实为实例属性做到了。这就是为什么分配给实例属性需要知道要分配给哪个实例,这就是为什么它需要self..

2022-02-25