为什么我们在Python中定义方法时添加self参数

时间:2012-08-11 14:24:00

标签: python methods parameters

  

可能重复:
  Why do you need explicitly have the “self” argument into a Python method?

为什么我必须添加此自我参数

    def function(self):

2 个答案:

答案 0 :(得分:1)

因为当您在类中定义方法时,它会自动创建一个描述符,该描述符将对象实例作为第一个参数传递。如果你想避免这种情况,可以使用@staticmethod装饰器,或者只在类外定义你的函数。

至于为什么语言是以这种方式设计的,否则在没有显式变量创建的语言中这样做是没有意义的。如果你做a = 2,你怎么知道它应该是本地变量还是实例变量?此外,明确地传递它只是一个更优雅的设计。

答案 1 :(得分:0)