zoukankan      html  css  js  c++  java
  • python类属性 静态方法

     
    实例
    实例就是由对象创建出来的实实在在的存在
    创建出来的对象叫做类的实例
    创建对象的动作叫做实例化
    对象的属性叫做实例的属性
    对象调用的方法叫做实例方法
     
    类是一个特殊的对象
     
    类属性
    类属性就是类对象中定义的属性,通常用来记录与这个类相关的特征,不会记录与对象相关的特征
    演练需求:
    1.定义一个工具类
    2.每件工具都有自己的名称
    3.知道使用这个类,创建了多少工具对象
    class Tool ( object ):
    # 使用赋值语句定义类属性
    count = 0
     
    def __init__(self, name):
    self.name = name
    # 调用类属性的值+1
    Tool.count += 1 # 类属性的调用方式:类名.类属性名
    # 创建工具对象
    t1 = Tool ( "斧头" )
    t2 = Tool ( "水桶" )
    # 输出工具对象的总数
    print ( "工具对象的总数 %d" % Tool.count )
    
    属性获取机制--向上查找机制
    1、首先先在对象内部查找
    2、没有找到就会向上寻找类属性
     
    类方法
    类属性是针对 类对象 定义的属性
    使用赋值语句在class 关键字下方可以定义属性
    类属性 用于记录与这个类相关的特征
     
    类方法 是针对 类对象 定义的方法
    在类方法内部可以直接访问类属性或者调用其它的类方法
     
    语法格式:
    @classmethod
    def 类方法名( cls ):
    pass
    注意:
    1.类方法需要用 修饰器 @classmethod 来标识,告诉解释器这是一个类方法
    2.类方法的第一个参数 应该是 cls ,与实例方法的第一个参数self类似
    3.通过类名,调用类方法,调用方法时,不需要传递cls 参数
    4.在方法内部:
    • 可以通过cls. 访问类的属性
    • 也可以通过cls. 调用其他的类方法
    class Tool(object):
    count = 0
     
    def __init__(self, name):
    self.name = name
    Tool.count += 1
     
    # 类方法
    @classmethod
    def show_tool_count(cls):
    # 访问当前类方法的属性使用cls.
    print("工具对象的数量 %d" % cls.count)
     
    tool1 = Tool("斧头")
    tool2 = Tool("榔头")
    # 调用类方法,使用类名.类方法名()
    Tool.show_tool_count()
     
    静态方法
    静态方法 需要用 @staticmethod 来标识,告诉解释器这是一个静态方法
    参数随意,没有“self”和“cls”参数,但是方法体中不能使用类或实例的任何属性和方法
    静态方法主要是用来存放逻辑性的代码
    通过类名. 调用静态方法
    语法格式:
    @staticmethod
    def 静态方法名():
    pass
     
    

      

    演练:
    class Dog(object):
    @staticmethod
    def run():
    # 如果这个方法不访问实例属性或者类属性,就可以把方法定义成静态
    print("小狗要跑。。。")
    # 通过类名.调用静态方法,不需要创建对象
    Dog.run()
    

      

     
     

  • 相关阅读:
    师生关系
    2019-2020 20191316《信息安全专业导论》第二周学习总结
    计算机科学概论问题2
    android studio device file explorer 无法向/storage/emulated/0/上传文件
    【转载】android打包APK
    android app no modules 错误,不能运行
    Error:Unable to locate adb within SDK in Android Studio
    Ubuntu set up 8
    Ubuntu 18.04.3 安装 CUDA 10.2
    Intel Realsense SDK for Android 编译
  • 原文地址:https://www.cnblogs.com/wysk/p/11304428.html
Copyright © 2011-2022 走看看