美文网首页
python中普通方法classmethod和staticmet

python中普通方法classmethod和staticmet

作者: 时光如水_fe87 | 来源:发表于2018-10-11 15:06 被阅读0次

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,抽象类,一般在基类中使用,只能被继承,不能被实例化!

相关文章

网友评论

      本文标题:python中普通方法classmethod和staticmet

      本文链接:https://www.haomeiwen.com/subject/asdbaftx.html