一文详解python的类方法,普通方法和静态方法

Posted jayliu

tags:

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

技术分享图片

  首先形式上的区别,实例方法隐含的参数为类实例self,而类方法隐含的参数为类本身cls。 静态方法无隐含参数,主要为了类实例也可以直接调用静态方法。

  所以逻辑上,类方法被类调用,实例方法被实例调用,静态方法两者都能调用。主要区别在于参数传递上的区别,实例方法悄悄传递的是self引用作为参数,而类方法悄悄传递的是cls引用作为参数。

接下来看用类和实例分别能否调用类属性

技术分享图片

 

故  实例方法(普通方法)应该由实例调用,类不能调用;

 

技术分享图片

类方法可以由类调用,而且因为传入了参数cls,故也可以由实例来调用。

技术分享图片

静态方法两者都能调用

 总结成一张表就是:

技术分享图片

 注意类实例方法调用的结果和静态方法调用的结果的区别:

 技术分享图片

实例方法(普通方法)——————————————————————随着实例属性的改变而改变

类方法(无论是类调用还是实例调用)———————————————都是类属性的值,不随实例属性的变化而变化

静态方法————————————————————————————不可以访问类属性,故直接输出传入方法的值

 

以上是关于一文详解python的类方法,普通方法和静态方法的主要内容,如果未能解决你的问题,请参考以下文章

一文详解:Java中父子类静态块构造块构造方法成员变量之间的初始化先后顺序与执行先后顺序

python学习笔记8--面向对象--属性和方法详解

python的类基础详解

Python 如何正确使用静态方法和类方法?

java枚举使用详解

Python入门之面向对象编程python类的详解