Why do we add the self parameter when defining a method in Python
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Why do you need explicitly have the “self” argument into a Python method?
为什么我要添加这个自变量
1 | def function(self): |
因为在类中定义方法时,它会自动创建一个描述符,该描述符将对象实例作为第一个参数传递。如果要避免这种情况,请使用@staticmethod修饰符,或者只在类外部定义函数。
至于为什么这种语言是这样设计的,在没有显式变量创建的语言中这样做是没有意义的。如果您执行a=2,如何知道它应该是本地变量还是实例变量?而且,一般来说,显式传递只是一种更优雅的设计。
显式优于隐式。