Python类方法是与类本身绑定的方法,通过@classmethod
装饰器定义,可直接用类名调用且首个参数为cls
,用于操作类属性或实现工厂模式等场景。
-
定义与语法
类方法使用@classmethod
装饰器声明,首个参数为cls
(指向类本身),而非实例方法中的self
。例如:python复制
class MyClass: @classmethod def get_info(cls): return f"类名:{cls.__name__}"
调用时可通过类名直接执行:
MyClass.get_info()
。 -
核心用途
- 访问类属性:通过
cls
修改或读取类级变量,影响所有实例。 - 工厂模式:封装实例创建逻辑,例如根据输入参数返回不同子类对象。
- 替代构造函数:提供灵活的实例化方式,如从字符串或字典生成对象。
- 访问类属性:通过
-
与实例方法、静态方法的区别
- 实例方法依赖对象(
self
),可操作实例和类属性。 - 静态方法(
@staticmethod
)无self
或cls
,仅是类命名空间下的普通函数。 - 类方法介于两者之间,专注类级操作,无需实例化即可调用。
- 实例方法依赖对象(
提示:合理使用类方法能提升代码复用性,尤其在需要类级别协作的场景。避免滥用,优先考虑实例方法满足对象特有行为需求。