簡體   English   中英

從python中的靜態方法調用靜態方法時的多態性

[英]Polymorphism when calling a static method from a static method in python

我目前正在研究一個問題,其中許多類將基於基類。 我希望這些類從基類繼承靜態函數,而基類又調用靜態函數。 但是,將為每個類定義第二個靜態函數。

一個簡單的例子是:

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嗎?

感謝任何幫助!

使fn2成為一個類方法,以便它可以訪問用於調用該方法的類:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM