2016-08-08 6 views
0

как полностью начинающий Мне нужно попросить вас о помощи. Я определил класс Config, который принимает из файла config.ini некоторую информацию и помещает их в переменную. Теперь я определяю class: Connection, в основе которого лежит результат из Config. Я пытался сделать это по-разному, но, наконец, сдался. Может ли кто-нибудь взглянуть?Получение переменной из другого класса

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

Привет, я установил на мой вопрос был класс Connection (IngesConfig) вместо класса Connection (Config) :. Unfornatelly ваш soution не работает. У меня возникла ошибка: у объекта Config нет атрибута: строка подключения. – bazyl

+0

хорошо, потому что вы не инициализируете эти переменные. В вашем Config init вы не объявляете/не назначаете эти значения. вам нужно запустить 'emp1.getConnection()' сначала взглядами, чтобы инициализировать эти – dhdavvie

+0

отлично, вы правы. благодаря! – bazyl

Смежные вопросы