2015-04-25 9 views
-4

У меня есть следующий код:новый список для каждого, если

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) 

То, что я хочу, чтобы каждый из МСФ начать с четкой self.deployJobs, но я не могу показаться, чтобы выяснить логику.

+4

Я понятия не имею, что вы просите. Вы уже установили эту переменную в пустой список в начале итераций цикла for, чтобы они всегда были пустыми списками в начале каждого блока if. Вы буквально можете выпить стакан воды, вернуться, и ваша проблема будет решена. – Shashank

+0

@ TigerhawkT3, то как мне заставить его не делать configXPRandDeploy, пока все ifs не исчерпаны? – whoisearth

+0

Возможно, инициализируйте список перед циклом, затем очистите его в конце блока 'else'? – TigerhawkT3

ответ

1

проблема это очистка после каждой части цикла if

if заявление не петля. Блокированные в нем блоки кода (технически, «наборы» внутри него) не выполняются последовательно. Нулевой или один из этих наборов будет выполняться за итерацию цикла, не более одного.

Я хочу, чтобы этот список содержит все в if, то , когда он перемещается в elif быть пустым снова

После того, как if или elif состояние определяется, чтобы быть правдой, свита после , чтоif или elif выполнено, а затем все if - elif - else структура делается. Исполнение комплекта if будет никогда «перейдите к elif».

Python Language Reference описывает поведение if statements ясно.

То, что я хочу, чтобы каждый из if с, чтобы начать с четкой self.deployJobs

Предполагая, что вы имеете в виду каждого вы хотите, чтобы каждый из if заявления сьютов, чтобы начать с чистой self.deployJobs, то вы должны поместить свою строку self.deployJobs = [] непосредственно перед оператором if ... который вы уже сделали.

Так что я боюсь, что в этот момент мне нужно присоединиться к многочисленным другим плакатам, которые не могут понять, что вы хотите, чтобы этот код выполнял. Я могу предположить, однако, что , заканчивающийся Сьюты с self.deployJobs = [], вероятно, не помогут вам вообще.

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