0

私はこのようなことをしたいのですが、Pythonで可能ですか?

f = 'free'
p = 'paid'
if version is f:
      APP_VER = 'APP_FREE'
elif version is p:
      APP_VER = 'APP_PAID'

s_email = webapp2.get_app().config[APP_VER]['SUPPORT_EMAIL']

Error: UnboundLocalError: local variable 'APP_VER' referenced before assignment

何か案が!

4

1 に答える 1

5
if version is f:
      APP_VER = 'APP_FREE'
elif version is p:
      APP_VER = 'APP_PAID'

versionどちらfでもない可能性がありpます。パーツを含めますelse。また(@jamylakノートのように)==文字列を比較するために使用しますis

if version == f:
      APP_VER = 'APP_FREE'
elif version == p:
      APP_VER = 'APP_PAID'
else:
    print 'version <{0}> unknown'.format(version)
    exit()
    # or raise an exception here

別の方法(バージョンのリストが長い場合は大幅に改善されます):

app_name = {'free': 'APP_FREE',
            'paid': 'APP_PAID'} # this can be extended if needed
APP_VER = app_name.get(version)
# APP_VER is None if version unknown
于 2012-07-09T07:21:27.280 に答える