2016-08-08 2 views
0

완전히 초보자인데 도움이 필요합니다. config.ini 파일에서 가져온 클래스 Config를 정의하고이를 변수에 넣습니다. 이제 class : Connection 클래스의 결과의 기본 클래스 인 Connection을 정의합니다. 나는 여러 가지 방법을 시도했지만 결국 포기했다. 누구든지 봐도 될까요?다른 클래스의 변수 얻기

class Config: 
    def __init__(self,system): 
     self.config = configparser.ConfigParser() 
     self.config.read("config.ini") 
     self.connection_source=self.config.get(system,'Source') 
     self.system=system 

    def getsystemSources(self): 
     return self.connection_source 

    def getConnection(self,source): 
     self.source=source 
     self.connection_string=self.config.get('CONNECTION',self.system+'_'+source+'_'+'connectstring') ## Connection 
     self.connection_user=self.config.get('CONNECTION',self.system+'_'+source+'_'+'user') ## Connection user 
     self.connection_password=self.config.get('CONNECTION',self.system+'_'+source+'_'+'password') ## Connection pass 

class Connection(Config): 
    def __init__ (self): 
     self.connection_string=Config.connection_string 
     self.connection_user=Config.connection_user 
     self.connection_password=Config.connection_user 
     self.connection_source=Config.connection_source 
    def conn_function(self): 
     print (self.connection_string) 
     print (self.connection_user) 
     print (self.connection_password) 

emp1 = Config('Windows')  
value=emp1.getsystemSources() 
print (value) 
emp2 = Connection() -> how to run it ? 

답변

1

당신은 단순히 __init__ 기능

class Config: 
    def __init__(self,system): 
     self.config = configparser.ConfigParser() 
     self.config.read("config.ini") 
     self.connection_source=self.config.get(system,'Source') 
     self.getConnection(self.connection_source) 
     self.system=system 

class Connection(Config): 
    def __init__ (self, system): 
     Config.__init__(self, system) 

emp1 = Connection('Windows') 
emp1.conn_function() 
+0

하이로 구성 개체를 전달, 내가 대신 클래스 연결 (구성)의 클래스 연결 (IngesConfig)이 있었다 내 질문에 고정 :. Unfornatelly 귀하의 soution 작동하지 않습니다 .. 내가 오류가 : 구성 개체가 속성이 없습니다 : 연결 문자열. – bazyl

+0

이러한 변수를 초기화하지 않았기 때문에 그렇습니다. Config init에서는이 값들을 선언하거나 할당하지 않습니다. 'emp1.getConnection()'을 먼저 실행 시켜서 이것들을 초기화해야한다. – dhdavvie

+0

위대한, 맞다. 감사! – bazyl

관련 문제