美文网首页
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