jon*_*opf 22 python methods class class-method
我理解为什么self 始终是类方法的第一个参数,这是完全有道理的,但如果它总是如此,那么为什么要为每个方法定义经历打字的麻烦?为什么不在幕后自动完成?
是为了清楚还是在某种情况下你可能不想把自己作为第一个论点?
Mar*_*ers 34
因为显性优于隐式.通过使参数成为明确的要求,您可以简化代码理解,内省和操作.它在Python FAQ中进一步扩展.
此外,您可以定义类方法(将类而不是实例作为第一个参数),并且您可以定义静态方法(根本不要使用'first'参数):
class Foo(object):
def aninstancemethod(self):
pass
@classmethod
def aclassmethod(cls):
pass
@staticmethod
def astaticmethod():
pass
Run Code Online (Sandbox Code Playgroud)