python__基础 : 类属性,类方法,静态方法

Posted cccy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python__基础 : 类属性,类方法,静态方法相关的知识,希望对你有一定的参考价值。

类属性  定义在类里面,方法外面的属性,一般属于这个类,如下面的 num 就是类属性:

class Test:
    num = 0

类属性用 实例.类属性   或者 类.类属性 都可以访问,

如 a = Test()  用 a.num 可以访问 ,但是如果这个实例有一个实例属性 self.num 那么这样访问的其实是 self.num ,

所以一般用 类.属性 即这样 Test.num 访问

类方法, 类方法是属于这个类的方法,定义方式为 前面加上装饰器 @classmethod 且第一个参数传递的是当前类的名字,和self 差不多,只不过一般用 cls 来表示 :

class Test:
    num = 0

    @classmethod
    def setNum(cls, newNum):
        cls.num = newNum

这个 setNum 方法就是类方法,可以通过调用 Test.setNum(100) 这种方式来把类属性 num 的值改为 100

当然也可以通过 实例.setNum(100) 来调用,但是如果有个实例方法也是test这个名字,那么调用的将会是实例方法而不是类方法.

静态方法:如果一个方法,和类属性实例属性类方法实例方法都没有什么关系,如 只是打印一句话,那么可以把他作为一个静态方法,前面需要加上装饰器 @staticmethod :

class Test:
    @staticmethod
    def printInfo():
        print(this is a staticmethod)

这个静态方法和类方法一样,可以用实例调用也可以用类调用,但是一般用   类.静态方法  调用,因为如果有相同名字的实例方法,也是优先调用实例方法.

以上是关于python__基础 : 类属性,类方法,静态方法的主要内容,如果未能解决你的问题,请参考以下文章

Python面向对象:一篇文章掌握面向对象的基础

PYTHON学习之路_PYTHON基础

python中类对象实例对象类属性实例属性类方法实例方法静态方法

Python_静态属性类方法静态方法

Python之路 - 属性方法,类方法,静态方法

Python学习10 内置属性 对象属性 类属性 私有属性 私有方法 对象方法 类方法 静态方法