可能重复:
为什么你需要明确的有“自我”的说法变成一个Python的方法?
我明白为什么自己总是类方法的第一个参数,这非常有意义,但如果总是这样,那么为什么到底,如果每个方法定义输入的麻烦? 为什么不把它的东西多数民众赞成自动在幕后做了什么?
它是为清楚起见,还是有一个情况下,你可能不会想通过自己作为第一个参数?
可能重复:
为什么你需要明确的有“自我”的说法变成一个Python的方法?
我明白为什么自己总是类方法的第一个参数,这非常有意义,但如果总是这样,那么为什么到底,如果每个方法定义输入的麻烦? 为什么不把它的东西多数民众赞成自动在幕后做了什么?
它是为清楚起见,还是有一个情况下,你可能不会想通过自己作为第一个参数?
由于显式优于隐式。 通过使参数明确要求,可以简化代码的理解,反省和操纵。 它在我们进一步扩大了Python的常见问题 。
此外,你可以定义类方法(以一类,而不是实例作为第一个参数),你可以定义静态方法(不要拿“第一”的说法的话):
class Foo(object):
def aninstancemethod(self):
pass
@classmethod
def aclassmethod(cls):
pass
@staticmethod
def astaticmethod():
pass
圭多解释说, 这里 。 基本上,方法是功能,和功能不应该接受任何“隐藏”参数,否则高阶设施,如装饰,将无法以一种合理的方式来对付他们。