zoukankan      html  css  js  c++  java
  • Python 知识要点:类方法,类属性,静态方法

    【类属性】

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

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

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

    【类方法】

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

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

    语法:@classmethd      # 修饰符,告诉解释器这是一个类方法

       def 类方法名(cls):   # 由哪个类调用的方法,cls就是哪一个类的引用,同 self

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

    在类方法内部,可以通过 cls. 访问类的属性,也可以通过 cls. 调用其他的类方法

    【静态方法】

    在开发时,如果需要在这个类中封装方法,这个方法:

    • 既不需要访问实例属性,或者调用实例方法
    • 也不需要访问类属性,或者调用类方法

    这个时候,可以把这个方法封装成一个静态方法

    语法:@staticmethod

       def 静态方法名():

    静态方法需要用修饰符(器),@staticmethod 来标识

    通过 类名. 调用静态方法

    class Tool(object):
        # 使用赋值语句定义类属性,记录所有工具对象的数量
        count = 0
    
        # 定义一个类方法,而不是实例方法
        @classmethod
        def show_tool_count(cls):
            # cls.count += 1
            # cls.__init__()
            print("工具对象的数量%d" % cls.count)
    
        def __init__(self, name):
            self.name = name
    
            # 让类属性的值+1
            Tool.count += 1
    
    
    # 创建工具对象
    tool1 = Tool("斧头")
    tool2 = Tool("榔头")
    
    # 调用类方法
    Tool.show_tool_count()
    class Game(object):
        # 类属性,历史最高分
        top_score = 0
    
        def __init__(self, player_name):
            # 实例属性 play_name
            self.player_name = player_name
    
        # 静态方法
        @staticmethod
        def show_help():
            print("帮助信息:打松鼠")
    
        # 类方法
        @classmethod
        def show_top_score(cls):
            print("历史记录 %d" % cls.top_score)
    
        # 实例方法
        def start_game(self):
            print("%s开始游戏" % self.player_name)
    
    
    # 1.查看游戏帮助信息
    Game.show_help()
    
    # 2.查看历史最高分
    Game.show_top_score()
    
    # 3.创建游戏对象
    gamer = Game("小明")
    gamer.start_game()
    从现在开始,种下梦想中的参天大树
  • 相关阅读:
    自动滑块验证登录QQ-java实现
    今日校园自动提交问卷-Java实现
    文库下载实现自动化
    测试
    软件工程结课小结
    结对项目-java生成四则运算
    JS判断对象为空的三种方法
    vue 组件间 8 大通讯方式 之三 eventBus
    vue 组件间 8 大通讯方式 之二 provide/ inject ref / refs
    vue 组件间 8 大通讯方式 之一 props / $emit $children / $parent
  • 原文地址:https://www.cnblogs.com/dc2019/p/13190151.html
Copyright © 2011-2022 走看看