我有以下代码片段,它不会更新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很新,但我似乎无法理解这一点。