使用的原因
staticmethod是,如果您有一些可以作为独立函数编写的东西(不属于任何类的一部分),但是您希望将其保留在类中,因为它在某种意义上与类相关。(例如,它可以是一个不需要类信息的函数,但是其行为特定于类,因此子类可能希望覆盖它。)在许多情况下,它可能同样有意义写一些东西作为独立函数而不是静态方法。
您的示例并不完全相同。一个关键的区别是,即使不使用它
self,您仍然需要一个实例来调用
static_add_one-–您不能使用来直接在类上调用它
test2.static_add_one(1)。因此,那里的行为确实存在差异。静态方法最严重的“竞争”不是忽略的常规方法
self,而是独立的函数。



