1
我想知道是否有一種方法做什麼,我想,最好用一個例子解釋:問:與基類Python包結構
a.py的內容:
class A(object):
def run(self):
print('Original')
class Runner(object):
def run(self):
a = A()
a.run()
內容b.py:
import a
class A(a.A):
def run(self):
# Do something project-specific
print('new class')
class Runner(a.Runner):
def other_fcn_to_do_things(self):
pass
基本上,我有一個基本類的文件,我想用於幾個不同的項目。我希望b.Runner.run()
可以使用b.py
,中的類A
,而不需要覆蓋run
方法。在上面的例子中,我想代碼
import b
r = b.Runner()
print(r.run())
要打印「新類」。有沒有辦法做到這一點?這樣做真的很糟糕嗎?是否有更好的方法來構造代碼?
也許'Runner'類的構造函數應該接受一個類型,並使用它所需的任何類型的'run'方法? –
這是一個好主意,但已經有一個很大的代碼庫,它需要一個非常特定的初始化簽名;我不想改變這一點。 – kgully