staticmethod() 静态方法装饰器

最后更新:2026-09-22

staticmethod() 静态方法装饰器

@staticmethod 把方法标记为静态方法:不接收 self 或 cls。

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

📝 语法

@staticmethod
def func(...):

⚙️ 参数

func 必选要包装为静态方法的函数(或可调用对象)。

返回值:返回静态方法描述符;调用时不传递 self 或 cls。

▶ 示例

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

运行结果:

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

❓ 常见问题

Qstaticmethod 和 classmethod 有什么区别?
Astaticmethod 不接收任何特殊参数,与普通函数完全一样;classmethod 第一个参数是 cls(类本身),能访问类属性。
Q实例能调用静态方法吗?
A能,C().add(1, 2) 和 C.add(1, 2) 都可以,参数完全一致,不会像实例方法那样自动传 self。
Q为什么不直接用模块级函数而要 staticmethod?
A把与类逻辑相关的工具函数放进类的命名空间,组织更清晰,且可被子类继承和覆盖。
Q@staticmethod 装饰的函数和普通函数在行为上有区别吗?
A逻辑上没有区别,只是“归属”不同:静态方法通过类访问、与类逻辑相关;普通函数在模块命名空间里。
Web-Tutorial.com

Web-Tutorial 技术团队

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

100%

🙏 帮我们做得更好

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

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