zoukankan      html  css  js  c++  java
  • 第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的世界。
    欢迎大家批评指正,谢谢大家关注!

  • 相关阅读:
    多线程等待
    多线程多进程
    Django中的 返回json对象的方式
    爬虫之 单线程+多任务异步协程
    python 调用github的api,呈现python的受欢迎的程度
    爬虫之线程池
    爬虫之代理和cookie的处理
    pip 安装报错
    git 新建仓库第一次提交
    ansible的剧本
  • 原文地址:https://www.cnblogs.com/LaoYuanPython/p/11087698.html
Copyright © 2011-2022 走看看