当前位置 博文首页 > m0_51723227的博客:07类方法

    m0_51723227的博客:07类方法

    作者:[db:作者] 时间:2021-08-14 15:01

    03.类方法和静态方法

    3.1类方法

    类属性就是针对类对象定义的属性

    • 使用赋值语句class 关键字下方可以定义类属性
    • 类属性用于记录与这个类相关的特征

    类方法就是针对类对象定义的方法

    • 在类方法内部可以直接访问类属性或者调用其他的类方法
    语法如下
    @classmethod
    def 类方法名(cls):
    	pass
    

    ●类方法需要用修饰器@classmethod 来标识,告诉解释器这是一个类方法
    ●类方法的第一个参数应该是cls

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

    还记得self吗?,self的作用是什么?

    可以用self.的方式进行调用当前对象属性和当前对象的方法

    ●通过类名.调用类方法调用方法时,不需要传递cls参数
    ●在方法内部

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

    在之前我们做过一个和类属性相关的案例,即

    知道使用这个类时,创建了多少个工具对象

    示例需求

    ● 定义一个工具类
    ● 每件工具都有自己的name
    ● 需求:知道使用这个类时候,创建了多少个工具对象?

    class Tool(object):
        count =  0
        def __init__(self,name):
            self.name = name
            Tool.count += 1
        
    a = Tool("a")
    b = Tool("b")
    c = Tool("c")
    print(Tool.count)
    

    以上进行查看有多少种方法时,是通过打印类属性来观测到的

    那么,现在便可以通过类方法进行封装查看类属性

    示例需求
    • 定义一个工具类

    • 每件工具都有自己的name

    • 在类封装一个show _tool _count 的类方法,输出使用当前这个类,创建的对象个数

      Tool.
      Tool. count
      name
      __ init_ __(self, name)
      show _tool _count(cls):
      class Tool:
          count = 0
          def __init__(self,name):
              self.name = name
              Tool.count += 1
      
              
          @classmethod
          def show_tool_count(cls):
              print("一共有%d个工具"%Tool.count)
      
      tool1 = Tool("男友")
      tool2 = Tool("nv")
      tool3 = Tool("sdfb")
      
      Tool.show_tool_count()
      

    结果:

    一共有3个工具

    新人创作,若有问题,欢迎大佬们的斧正

    cs
    下一篇:没有了