python 从静态方法调用静态方法时的多态性

Polymorphism when calling a static method from a static method in python

我目前正在解决一个问题,其中许多 classes 将基于一个基础 class。我希望这些 classes 从基础 class 继承一个静态函数,后者又调用一个静态函数。但是,将为每个 class.

定义第二个静态函数

一个简单的例子是:

class foo():
   @staticmethod
   def fn1(x):
      return x

   @staticmethod
   def fn2(x, y):
      return foo.fn1(x + y)

class bar(foo):
   @staticmethod
   def fn1(x):
      return 2*x

使用上面的代码 bar.fn2(1, 2) returns foo.fn1(1 + 2) 而我希望它变成 return bar.fn1(1 + 2)

是否可以在 python 中使用静态方法而不为每个 class 定义 fn2?

感谢任何帮助!

fn2 改为 class 方法,以便它可以访问用于调用该方法的 class:

@classmethod
def fn2(cls, x, y):
   return cls.fn1(x + y)