2016-08-08 3 views
-2

Ребята, я думаю, как обрабатывать переменные из одного метода в другой внутри одного класса. Например:Переменные процесса от одного метода к другому внутри одного класса

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 

До сих пор я использовал что-то вроде выше. Итак, на getConnection я использовал переменную self.portal из метода getPortalSources. Однако мне все еще немного неясно.

Просто интересно, есть ли еще какой-нибудь другой подход, чтобы сделать что-то подобное? Если да, не могли бы вы дать мне несколько советов или примеров.

Например:

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 

Конечно, это не будет работать, но я думаю, что тогда вы получили мою идею.

С уважением

ответ

0

Что я предлагаю вам использовать конструктор, или глобальные переменные.

Я приведу пример для конструкторы здесь:

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 

Так что здесь происходит, когда вы создаете объект этого класса вы делаете так:

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

использованию portal='the_portal',source='the source' является необязательным если вы этого не сделаете, они будут принимать значение по умолчанию.

И теперь, когда вы говорите: new_obj.getConnection(), он предоставит вам эту вещь.

если вы скажете: new_obj.getConnection(source='some_other_source'), то он даст с этим источником.

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