Python basics -- @ classmethod and @ staticmethod, pythonstaticmethod
Basic python knowledge -- @ classmethod and @ staticmethod
In the member functions of the class, you can add the @ classmethod and @ staticmethod modifiers. There are some differences between the two. Simply put:
@ Classmethod must have the cls parameter. The passed cls variable in the inherited subclass is a subclass.
@ Staticmethod: This method is the same as that of the parent class.
Check the Code:
Class ParentClass: @ classmethod def clsfun (cls): print cls. _ name _ + ': classmethod' @ staticmethod def stcfun (): print 'parentclass: staticmethod' class SonClass (ParentClass): pass ''' @ classmethod def clsfun (cls): print 'sonclass: classmethod' @ staticmethod def stcfun (): print 'sonclass: staticmethod''' ParentClass. clsfun () ParentClass. stcfun () p = ParentClass () p. clsfun () p. stcfun () SonClass. clsfun () SonClass. stcfun () s = SonClass () s. clsfun () s. stcfun ()