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逻辑上没有区别,只是“归属”不同:静态方法通过类访问、与类逻辑相关;普通函数在模块命名空间里。