2016-06-10 120 views
0

給定一個名爲DataStream訪問類層級屬性

class DataStream(object): 
    def __init__(self): 
     self.start = start 
     self.input_val = input_val 

類和類名爲InDataStream

class InDataStream(DataStream): 
    def __init__(self): 
     super(InDataStream, self).__init__() 
     self.ready = ready 

stream = InDataStream() 

我想送的streamDataStream部分成一個函數,是這樣的:

function(stream.DataStream) 

有沒有什麼好的方法來完成這項任務?

+1

這沒有任何意義,'stream'(或任何'InDataStream')沒有*'DataStream',它**是一個**'DataStream'。 – jonrsharpe

+1

你問如何排序'InDataStream'到一個'DataStream'並隱藏它的'InDataStream'質量?你爲什麼想這樣做?這聽起來像一個[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) – rrauenza

+0

我有點想'indatastream'就像'datastream'忽略其「ready」屬性。 我想將indatastream的數據流部分發送到函數中。 – vikram9866

回答

0

如果你正在尋找從InDataStream類的實例訪問DataStream的實例,那麼你可以考慮使用,而不是組成繼承:

class InDataStream(object): 
    def __init__(self): 
     self.ready = ready 
     self.datastream = DataStream() 

然後,你可以這樣做:

stream = InDataStream() 
function(stream.datastream) 
+0

謝謝...我完全忽略了我錯過了... 它解決了:) – vikram9866

+0

有沒有反正這樣做可以在不改變類結構的情況下實現呢? – vikram9866