内部的变量范围和if / else

时间:2014-04-23 02:03:22

标签: python variables if-statement for-loop scope

我有以下代码片段,它不会更新CH_end语句中的变量if else,除非我使用2个单独的if语句。

for provider, games in content_providers.iteritems():

    if provider == 'Test':

        for state in states:        
            if state == states[-1]:
                CH_end =  '] \n}'
            else:
                CH_end =  '] \n},'


            if state == 'STATE1':
                print jsontemplate.CH_STATE1_start  

                for game in games:
                 if game == games[-1]:  
                    print game_data + '  }'
                 else:
                    print game_data + '  },'        

                print CH_end            


            if state == 'STATE2':
                print jsontemplate.CH_STATE1_start  

                for game in games:
                 if game == games[-1]:  
                    print game_data + '  }'     
                 else:
                    print game_data + '  },'    

                print CH_end

#more

如果我将第二个if块更改为以下内容,则可以起作用:

if state != states[-1]:
    CH_end =  '] \n},'
else:
    CH_end =  '] \n}'

使用上述内容执行if从不设置CH_end块中的else值。

到目前为止,唯一可行的方法是使用2个单独的if块:

if state != states[-1]:
    CH_end =  '] \n},'

if state == states[-1]:
    CH_end =  '] \n}'

当然,我对Python很新,但我似乎无法理解这一点。

0 个答案:

没有答案