每个if的新列表

时间:2015-04-25 02:53:32

标签: python python-2.7

我有以下代码:

    jobList = self.jobs.findall("JOB")         
    for jitem in jobList:
        self.deployJobs = []
        if jitem.attrib.get("DISABLE") == 'Y':
            self.disablejob = '1'
            self.effectivedate = currentdate
            self.deployJobs.append(jitem.text)
            configXPRandDeploy(self)
            self.deployJobs = []
        elif jitem.attrib.get("EFFECTIVE") == nextdate:
            self.disablejob = '0'
            self.effectivedate = nextdate
            self.deployJobs.append(jitem.text)
            configXPRandDeploy(self)
            self.deployJobs = []
        else:
            self.disablejob = '0'
            self.effectivedate = currentdate
            self.deployJobs.append(jitem.text)
            configXPRandDeploy(self)

我想要的是每个IF以一个清晰的self.deployJobs开始,但我似乎无法弄清楚逻辑。

1 个答案:

答案 0 :(得分:1)

  

问题是它在if循环的每个部分之后清除

if语句不是循环。其中的缩进代码块(技术上,"套件"在其中)不是按顺序执行的。每次迭代循环都会执行零个或一个套件,永远不会超过一个。

  

我希望列表包含if中的所有内容,然后当它移至elif 再次为空时

确定ifelif条件为真后, <{em> ifelif后面的套件会被执行,然后整个if - elif - else结构已完成。执行if套件永远不会&#34;转移到elif&#34;。

Python Language Reference清楚地描述了if statements的行为。

  

我想要的是每个if以明确self.deployJobs

开头

假设您的意思是每个if语句套件都以明确的self.deployJobs开头,那么您应该立即放置self.deployJobs = []行您已经完成的if声明......

所以我担心在这一点上我必须加入众多其他海报,他们无法弄清楚你希望这些代码做什么。不过,我可以建议,使用self.deployJobs = []结束套件可能根本无法帮助您。