class Foo(object):
#实例方法,第一个承诺书必须是实例对象,一般习惯用self.
def ins_m(self):
print("是类{}的实例方法,只能被实例调用".format(Foo))
#类方法,第一个参数必须是类对象,一般习惯使用cls.使用@classmethod装饰器装饰
@classmethod
def cla_m(cls):
print('class method')
#j静态方法,参数没有要求,和类没有绑定关系,就是一个普通的方法,
@staticmethod
def sta_m():
print('static method')
foo=Foo() #创建一个实例
#实例方法只能被实例调用 (如果把实例方法的参数去掉,可以被类调用,不能被实例调用!)
#类方法可以被类和实例调用
#静态方法可以被类和实例调用 (不需要参数)
因此:当类中的某个方法是一个普通方法时,加一个staticmehod装饰器,不需要添加实例参数。此方法可以用外部函数替换。
另外还有一个abstractmethod,抽象类,一般在基类中使用,只能被继承,不能被实例化!
网友评论