- @staticmethod用于修饰类中的方法,使其可以再不创建类实例的情况下调用方法,这样做的好处是执行效率较高,当然也可像一般方法一样用实例调用该方法。该方法一般被成为静态方法。静态方法不可以引用类中的属性或方法,其参数列表也不需要约定的默认参数self。
- 一般来说,要使用某个类的方法,需要先实例化一个对象再调用方法。使用
- @staticmethod和@classmethod,就可以不需要实例化,直接类名.方法名()调用。
- @staticmethod不需要表示自身对象的self和自身类的cls参数,和使用函数一样。
- @classmethod不需要self参数,但第一个参数需要是表示自身类的cls参数。
- 如果在@staticmethod中要调用到这个类的一些属性方法,只能直接类名.属性名或类名.方法名。
- 而@classmethod因为持有cls参数,可以用来调用类的属性,类的方法,实例化对象等,避免硬编码