2016-08-08 10 views
-2

Jungs, ich denke, wie Variablen innerhalb einer Klasse von einer Methode in eine andere zu verarbeiten. Zum Beispiel:Verarbeiten von Variablen von einer Methode zu einer anderen innerhalb einer Klasse

class Newclas: 
    def getPortalSources(self,portal): 
      self.connection_source=self.config.get("portal_"+portal,'Sources') 
      self.portal=portal 

    def getConnection(self,source): 
      self.source=source 
      self.connection_string=self.config.get('CONNECTION',self.portal+'_'+source+'_'+'connectstring') ## Connection 

Bis jetzt habe ich so etwas wie oben. Also habe ich bei getConnection die Variable self.portal von der Methode getPortalSources verwendet. Aber es ist immer noch ein bisschen unklar für mich.

Ich frage mich nur, ob es etwas Besseres gibt, etwas zu tun? Wenn ja, könnten Sie mir ein paar Tipps oder Beispiele geben?

Zum Beispiel:

def getPortalSources(self,portal): 
     self.connection_source=self.config.get("portal_"+portal,'Sources') 
     self.portal=portal 

def getConnection(source): 
     self.connection_string=self.config.get('CONNECTION',getPortalSources.portal+'_'+source+'_'+'connectstring') ## Connection 

Natürlich wird es nicht funktionieren, aber ich denke, dann hast du meine Idee.

Grüße

Antwort

0

Was ich vorschlagen, dass Sie Konstruktor verwenden, oder globale Variablen.

Ich werde ein Beispiel für Konstruktor geben hier:

class Newclas: 
    def __init__(self,portal='default_portal',source='default_source'): 
     self.portal = portal 
     self.source = source 

    def getPortalSources(self,portal=self.portal): 
      self.connection_source=self.config.get("portal_"+portal,'Sources') 


    def getConnection(self,source=self.source): 
      self.connection_string=self.config.get('CONNECTION',self.portal+'_'+source+'_'+'connectstring') ## Connection 

Was hier passiert, ist, wenn Sie das Objekt dieser Klasse schaffen machen Sie wie folgt aus:

new_obj = Newclas(portal='the_portal',source='the source') 

mit portal='the_portal',source='the source' ist optional Wenn Sie dies nicht angeben, wird der Standardwert verwendet.

Und jetzt, wenn Sie sagen: new_obj.getConnection() wird es Ihnen mit diesem Ding zur Verfügung stellen.

Wenn Sie sagen: new_obj.getConnection(source='some_other_source') dann wird es mit dieser Quelle geben.

Verwandte Themen