2016-08-08 41 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

您好,我定我的問題出現了,而不是類連接(配置)類連接(IngesConfig):. Unfornatelly您的soution不起作用..我得到一個錯誤:配置對象沒有屬性:連接字符串。 – bazyl

+0

那麼,因爲你不初始化這些變量。在您的Config init中,您不會聲明/分配這些值。你需要首先運行'emp1.getConnection()'來初始化這些 – dhdavvie

+0

太棒了,你是對的。謝謝! – bazyl