我目前正在研究一个问题,其中许多类将基于基类。我希望这些类从基类继承静态函数,而基类又调用静态函数。但是,将为每个类定义第二个静态函数。
一个简单的例子是:
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)
返回foo.fn1(1 + 2)
,而我希望它返回bar.fn1(1 + 2)
。
是否可以在python中使用静态方法而不为每个类定义fn2?
感谢您的帮助!
答案 0 :(得分:0)
改为使fn2
为类方法,以便它可以访问用于调用该方法的类:
@classmethod
def fn2(cls, x, y):
return cls.fn1(x + y)