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()