1.类方法
- 类属性 就是针对 类对象 定义的属性
1、使用 赋值语句 在 class 关键字下方可以定义 类属性
2、类属性 用于记录 与这个类相关 的特征 - 类方法 就是针对 类对象 定义的方法
在 类方法 内部可以直接访问 类属性 或者调用其他的 类方法
语法如下
@classmethod
def 类方法名(cls):
pass
- 类方法需要用 修饰器 @classmethod 来标识,告诉解释器这是一个类方法
- 类方法的 第一个参数 应该是 cls
1、由 哪一个类 调用的方法,方法内的 cls 就是 哪一个类的引用
2、这个参数和 实例方法 的第一个参数是 self 类似
3、提示 使用其他名称也可以,不过习惯使用 cls - 通过 类名. 调用 类方法,调用方法时,不需要传递 cls 参数
- 在方法内部
可以通过 cls. 访问类的属性
也可以通过 cls. 调用其他的类方法
2.静态方法
-
在开发时,如果需要在 类 中封装一个方法,这个方法:
1、既 不需要 访问 实例属性 或者调用 实例方法
2、也 不需要 访问 类属性 或者调用 类方法 -
这个时候,可以把这个方法封装成一个 静态方法
语法如下
@staticmethod
def 静态方法名():
pass
- 静态方法 需要用 修饰器 @staticmethod 来标识,告诉解释器这是一个静态方法
- 通过 类名. 调用 静态方法
3.总结
1.实例方法 —— 方法内部需要访问 实例属性
- 实例方法 内部可以使用 类名. 访问类属性
2.类方法 —— 方法内部 只 需要访问 类属性
3.静态方法 —— 方法内部,不需要访问 实例属性 和 类属性
如果方法内部 即需要访问 实例属性,又需要访问 类属性,应该定义成什么方法?
- 应该定义 实例方法,因为,类只有一个,在 实例方法 内部可以使用 类名. 访问类属性