classmethod() 类方法装饰器

最后更新:2026-09-22

classmethod() 类方法装饰器

@classmethod 把一个方法标记为类方法,第一个参数是 cls(类本身)。

分类内置函数
类型内置函数
Python 版本all

📝 语法

@classmethod
def func(cls, ...)

⚙️ 参数

function 必选要包装为类方法的函数。

返回值:classmethod 描述符对象,可直接作为装饰器使用。

💥 异常

▶ 示例

编辑下方代码,点击运行,在输出面板查看结果:

运行结果:

2
更多实战案例即将上线,敬请期待。

❓ 常见问题

Qclassmethod 和 staticmethod 有什么区别?
Aclassmethod 的第一个参数是 cls(类本身),能访问类属性、调用其他类方法;staticmethod 不接收任何特殊参数,和普通函数一样。
Q类方法可以用实例调用吗?
A可以,C().inc() 和 C.inc() 都有效;无论从类还是实例调用,classmethod 的第一个参数都是类本身。
Q类方法通常用来做什么?
A做工厂方法(如 Date.today())、访问或修改类属性、以及定义替代构造函数实现多态创建。
Q为什么类方法里 cls.count += 1 能修改类变量?
A因为 cls 就是类本身,通过 cls 修改的是类属性;如果写成 self.count 就变成实例属性了,两者不同。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏