第7.16节 案例详解:Python中classmethod定义的类方法

第7.16节  案例详解:Python中classmethod定义的类方法

上节介绍了类方法定义的语法以及各种使用的场景,本节结合上节的知识具体举例说明相关内容。
一、    案例说明
本节定义的一个类ClsMethod,在类内定义了类方法clsmeth1、getobjcnt,演示内容包括:
1.    类方法的定义;
2.    在类方法clsmeth1中通过cls方式和类名两种方式调用类方法getobjcnt;
3.    在实例方法__init__中通过类名和“self.__class__.方法名” 调用类方法clsmeth1,其实还可以通过“self.方法名”调用类方法,例子没有演示;
4.    在类体外面通过“实例.方法名”、“实例.__class__.方法名”调用类方法。

二、    案例代码
相关代码如下:

class ClsMethod():
    objcnt1 = 0
       
    @classmethod
    def clsmeth1(cls):
        cls.objcnt1+=1
        cnt1=cls.getobjcnt() #类方法中通过cls访问类方法
        cnt2=ClsMethod.getobjcnt() #类方法中通过类名访问类方法
        
    @classmethod    
    def getobjcnt(cls):
        print("in getobjcnt(cls)")
        return  ClsMethod.objcnt1  
        
    def __init__(self):
        ClsMethod.clsmeth1() #实例方法中通过类名.方法名访问类方法 
        self.__class__.clsmeth1()#实例方法中通过self.__class__.方法名访问类方法 
    
ClsMethod.clsmeth1()
cm1=ClsMethod()   
cm1.getobjcnt()
cm1.__class__.getobjcnt()

三、    案例执行截图


 
本节结合案例详细对上节介绍的类方法的定义和使用方法进行了演示,案例很简单,但结合案例容易理解上节相关知识。
老猿Python(https://blog.csdn.net/LaoYuanPython)系列文章用于逐步介绍老猿学习Python后总结的学习经验,这些经验有助于没有接触过Python的程序员可以很容易地进入Python的世界。
欢迎大家批评指正,谢谢大家关注!

原文地址:https://www.cnblogs.com/LaoYuanPython/p/11087698.html