2016-08-08 14 views
0

完全に初心者です。私はあなたにいくつかの助けを求める必要があります。 私はconfig.iniファイルからいくつかの情報を取り出し、それらを変数に入れるクラスConfigを定義しました。 ここでは、class:Connectionの結果のベースとなる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

こんにちはにconfigオブジェクトを渡し、私の代わりに、クラスの接続(コンフィグ)のクラスの接続(IngesConfigが)あった私の質問に固定:. Unfornatellyあなたのsoutionは動作しません..私はエラーが発生しました:Configオブジェクトには接続文字列がありません。 – bazyl

+0

これらの変数を初期化していないためです。あなたのConfig initでは、これらの値を宣言したり割り当てたりしません。最初に 'emp1.getConnection()'を実行して、これらを初期化する必要があります。 – dhdavvie

+0

が大丈夫です。ありがとう! – bazyl

関連する問題