2016-06-10 3 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

나는 datastream와 같이'indatastream'을 무시하고 싶다. 그것의'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