繼承給init考慮類如何避免重複調用傳遞一個子類時在python
class Grid():
def __init__(self,r,z,t):
self.rgrid = r
self.zgrid = z
self.tgrid = t
self.otherstuff = long_computation(r,t,z)
class Solution(Grid):
def __init__(self,r,g):
self.zones = r
Grid.__init__(self,g.r,g.z,g.t)
g = Grid(my_r,my_z,my_t)
sol = Solution(r,g)
這造成我想要的東西,除了「long_computation」做了兩次。無論我是否只是調用Grid,或者我是否也執行了解決方案步驟,什麼樣的結構化類都可以起作用?
感謝,J.
爲什麼'Solution'從'Grid'繼承,爲什麼它利用現有的'Grid'作爲參數,而不是'r','z'和't'? – user2357112
'Grid .__ init__'和'Solution .__ init__'中的'r'有什麼區別?看起來最後一個應該命名爲'zones' –
你可以有一個類變量'done_long_computation',它會在你第一次設置__init__'時執行,'__init__'檢查是否設置了'done_long_computation'。 – boardrider