@staticmethod和@classmethod的区别
- class 类
- @staticmethod
- @classmethod
首先创建一个类,如果想要调用Student类中的方法get_score(),就需要先创建类的实例,然后再用类的对象再去调用方法
|
|
@staticmethod和@classmethod一个是静态方法,另一个是类的方法,两个装饰器的作用都可以使类不必再创建实例,直接用类来调用方法(类名.方法())
它们使用上的区别
- @staticmethod不需要传递self,也不需要cls参数,就跟使用函数一样(类名.方法()或类名.属性名)
- @classmethod也不需要像实例方法一样要传递self,但它需要cls参数(cls.类名()或cls.方法()或cls.属性())
要理解这些,首先需要理解类属性和实例属性的区别
|
|