实例方法
定义:第一个参数必须是实例对象,该参数名一般约定为“self”,通过它来传递实例的属性和方法(也可以传类的属性和方法);
调用:只能由实例对象调用。
类方法
定义:使用装饰器@classmethod。第一个参数必须是当前类对象,该参数名一般约定为“cls”,通过它来传递类的属性和方法(不能传实例的属性和方法);
调用:实例对象和类对象都可以调用。
静态方法
定义:使用装饰器@staticmethod。参数随意,没有“self”和“cls”参数,但是方法体中不能使用类或实例的任何属性和方法;
调用:实例对象和类对象都可以调用。
class Foo(object): def test(self): #//定义了实例方法 print("object") @classmethod def test2(clss): #//定义了类方法 print("class") @staticmethod def test3(): #//定义了静态方法,静态方法实际上跟该类没有太大关系。 print("static")
实例方法 两种访问方式:
- ff.test(); #//通过实例调用
- Foo.test(ff) #//直接通过类的方式调用,但是需要自己传递实例引用
类方法 两种访问方式:
- Foo.test2();
静态方法调用方式:
-
Foo.test3()
- ff.test(); #//通过实例调用