• Python类方法和静态方法(含义、语法、标识、代码示例)


    欢迎关注博主 python老鸟 或 前往 『Python自学网』, 从基础入门免费课程开始,逐步深入学习python全栈体系课程,适合新手入门到精通全栈开发。


    免费专栏传送门:《Python基础教程


    一、类方法

    1)类属性:

    含义:类属性就是针对类对象定义的属性。

    定义类属性:使用赋值语句在class关键字下方可以定义类属性

    作用:类属性用于记录这个类相关的特征

    2)类方法:

    含义:类方法就是针对类对象定义的方法。

    使用:在类方法内部可以直接访问类属性 或者调用其他的类方法

    语法:

    1. @classmethod
    2. def 类方法名(cls):
    3. pass

    提示:

    2.1类方法需要用修饰器@classmethod来标识,告诉python解释器这是一个类方法

    2.2类方法的第一个参数应该是cls

    1. 由哪一个类调用的方法,方法内的cls就是哪一个类的引用
    2. 这个参数和实例方法的第一个参数是self类似
    3. 提示:使用其他名称也可以,不过都习惯使用cls

    2.3通过类名. 调用类方法,调用方法时,不需要传递cls参数

    2.4在方法内部:

    1. 可以通过 cls. 访问类的属性
    2. 也可以通过 cls. 调用其他的类方法

    3)代码示例

    需求:

    1. 定义一个工具类
    2. 每件工具都有自己记得名字name
    3. 需求====》在类中封装一个show_tool_count的类的方法,输出使用当前这个类创建的对象个数。

     

    代码:

    1. class Tool(object):
    2. # 使用赋值语句定义类属性,记录所有工具对象的数量
    3. # 初始数量是0
    4. count = 0
    5. @classmethod
    6. def show_tool_count(cls):
    7. # 显示工具对象的总数
    8. print("工具对象总数 %d" % cls.count)
    9. def __init__(self, name):
    10. self.name = name
    11. # 每增加一个工具对象,让类属性的值加1
    12. Tool.count += 1
    13. # 创建工具对象
    14. tool1 = Tool("扳手")
    15. # 调用类方法
    16. Tool.show_tool_count()

    执行结果:

     


    二、静态方法

    2.1封装静态方法情况:

    在开发时,如果需要在类中封装一个方法,这个方法既不需要访问实例属性或者调用实例方法,也不需要访问类属性或者调用类方法,这个时候,可以把这个方法封装成一个静态方法。

    2.2 定义语法

    1. @classmethod
    2. def 静态方法名():
    3. pass

    提示:

    1. 静态方法需要用修饰器@staticmethod来标识,告诉解释器这是一个静态方法
    2. 静态方法在定义时不需要指定第一个参数

    调用静态方法方式:不需要创建对象

    类名.

    代码:

    1. class Dog(object):
    2. @staticmethod
    3. def run():
    4. print("狗狗想跑一跑")
    5. # 通过类名.调用及静态方法->不需要创建对象
    6. Dog.run()

    执行结果:

     

  • 相关阅读:
    MySQL 索引
    java即时高校信息发布系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
    主键约束!
    力扣第50天--- 第84题
    使用接口包装器模块简化在FPGA上实现PCIe的过程
    Nacos注册中心7-Server端(启动和重要API)
    迪赛智慧数——其他图表(雷达图):2022年国民睡眠困扰形式
    JVM(1)
    【C#】跨平台UI库Avalonia的学习笔记
    C++引用
  • 原文地址:https://blog.csdn.net/weixin_48728769/article/details/126883613