python3类方法,实例方法和静态方法
Posted 月见空青
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3类方法,实例方法和静态方法相关的知识,希望对你有一定的参考价值。
今天简单总结下python的类方法,实例方法,静态方法。
python默认都是实例方法,也就是说,只能实例对象才能调用这个方法。
那是不是说类方法也只能被类对象本身来调用呢,当然,不是。类方法既可以被类对象调用,也可以被实例对象调用。你可以这样理解,假设我现在定义的是‘dog狗’,它有一个类方法‘啃骨头’,那么对于所有的狗是不是都可以调用啃骨头这个方法,既然这样,我现在创建一个‘旺财’实例,它也同样可以去啃骨头,也就是能调用这个类方法。
静态方法你可以理解为参数可以随意设置的方法,类对象和实例对象都可以调用它。
#!usr/bin/env python # coding:utf-8 class A: def funa(self): print(‘实例方法‘) @classmethod def funb(cls): print(‘类方法‘) @staticmethod def func(): print(‘静态方法‘) if __name__ == ‘__main__‘: #生成一个实例对象 a = A() a.funa() #input:实例方法 #报错:TypeError: funa() missing 1 required positional argument: ‘self‘ #A.funa() a.funb() #input:类方法 A.funb() #input:类方法 a.func() #input:静态方法 A.func() #input:静态方法
总结:类中方法在未加@之类装饰器时都是属于实例方法,只能被实例对象调用。
@classmethod类方法,可以被类对象和实例对象调用。
@staicmethod静态方法,可以被类对象和实例对象调用,参数可以随意设置。
以上是关于python3类方法,实例方法和静态方法的主要内容,如果未能解决你的问题,请参考以下文章