为什么必须将self传递给python实例方法?是否有理由通过其他途径?
可能重复:为什么必须将self传递给python实例方法?是否有理由通过其他途径?,python,oop,Python,Oop,可能重复: 在Python中,实例方法必须将实例作为参数传递给它们,如: class Foo: def bar(self): print self.name 明确这一点的目的是什么?(是否只是隐式的
在Python中,实例方法必须将实例作为参数传递给它们,如:
class Foo:
def bar(self):
print self.name
明确这一点的目的是什么?(是否只是隐式的<显式的?)在什么情况下,您希望传递除“self”之外的内容?Python实例方法只是绑定到实例的函数。调用时,实例始终将自身作为第一个参数传递 名称
self
只是一个惯例。你可以随便叫它什么。所以你可以这样做:
class Foo:
def bar(s):
print s.name
但不要这样做,因为这违反了惯例。:) 我想你可以随便叫它什么,它只是按照惯例的
self
。但是,当您进行方法调用时,python隐式地传递接收对象作为第一个参数。谢谢还有,看看我链接到了哪里。是的,我知道它可以是任何东西。我只是好奇为什么它是这样实现的,而不仅仅是实例方法的属性,它们可以访问实例(就像其他基于类的继承实现一样)。@futuraprime答案是因为Python实例方法只是绑定到实例的函数。如果不将实例作为参数,则不可能是真的。