self
Python 中的单词的目的是什么?我知道它是指从该类创建的特定对象,但是我看不到为什么要将它显式地作为参数添加到每个函数中。为了说明这一点,在Ruby中,我可以这样做:
class myClass
def myFunc(name)
@name = name
end
end
我很容易理解。但是在Python中,我需要包括self
:
class myClass:
def myFunc(self, name):
self.name = name
有人可以通过这个告诉我吗?我的经历(公认有限)并不是我遇到的。
@name
比这更直观的self.name
呢?后者,IMO,更加直观。
@foo
并且self.foo
同样是显式的,因为不需要进行任何隐式的解析(例如,在C ++中,可以使用名称空间“隐式”访问实例成员,而无需“显式”访问实例成员)。唯一的区别是Ruby引入了新的语义(@),而Python没有。一种新的语义是否值得避免的冗长程度纯粹是主观的。不过,应该指出的是,大多数现代语言都选择在此处引入一个概念(例如php的$ this,JS的this)。