在一个类中将变量从一个方法处理到另一个方法

时间:2016-08-08 12:46:45

标签: python

伙计们,我想如何在一个类中将变量从一个方法处理成另一个方法。例如:

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上我使用了来自getPortalSources方法的self.portal变量。但是对我来说还是有点不清楚。

只是想知道是否还有其他更好的方法来做那样的事情?如果是这样,你能给我一些提示或例子。

例如:

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

当然它不起作用,但我认为你有了我的想法。

此致

1 个答案:

答案 0 :(得分: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')那么它将提供该来源。