# 先编写一个类包含实例、类方法和静态方法
class MyClass: def method(self): return ‘name‘, self @classmethod def classmethod(cls): return ‘class name‘, cls @staticmethod def staticmethod(): return ‘static name‘
1、实例方法、类方法和静态方法比较
实例方法:不需要任何装饰器,第一个参数self,代表类的实例
(1) 变量使用范围:可以直接使用,类里面任何的任何变量比如self.url、is_running
(2) 是否可以调用其他方法: 可以调用静态方法
(3) 是否需要实例化: 是
(4)调用方式:实例化Myclass().method() ,或者调用函数内部 self.xxx
类方法:需要classmethod装饰。第一参数cls,代表类本身,相当于类名
(1) 变量使用范围:不可以直接使用实例变量,比如self.url
(2) 是否可以调用其他方法: 可以调用静态方法。也可以调用实例方法
(3) 是否需要实例化: 否
(4)调用方式:类.方法名 和 实例化调用 。
静态方法:需要staticmethod装饰。完全独立于类
(1) 变量使用范围:不能使用类中任何变量。
(2) 是否可以调用其他方法: 不可以调用类方法。也不能调用实例方法。但是可以调用类中其他静态方法
(3) 是否需要实例化: 否
(4)调用方式:类.方法名 和 实例化调用 。