python:检查变量是否已定义并返回其值或返回其他值

gou*_*ham 0 python exists

我正在尝试使用此代码

result = arr['key1'] or arr['key2'] or arr['key3']
Run Code Online (Sandbox Code Playgroud)

解释:我希望从或者dict键得到结果值.键的可用性取决于环境.这不是关于None ..只能定义一个arr键...

那么有一个函数或方法,如is_defined()

我们如何在python中执行此操作?

UPDATE

我在这里遇到了一个新问题.代码1:

try:
   urlParams += "%s=%s&"%(val['name'], data.get(val['name'], serverInfo_D.get(val['name'])))
except KeyError:
   print "expected parameter not provided - "+val["name"]+" is missing"
   exit(0)
Run Code Online (Sandbox Code Playgroud)

代码2:

try:
   urlParams += "%s=%s&"%(val['name'], data.get(val['name'], serverInfo_D[val['name']]))
except KeyError:
   print "expected parameter not provided - "+val["name"]+" is missing"
   exit(0)
Run Code Online (Sandbox Code Playgroud)

请参阅serverInfo_D [val ['name']]和serverInfo_D.get(val ['name'])中的差异代码2失败,但代码1正常工作

数据

serverInfo_D:{'user': 'usr', 'pass': 'pass'} 
data: {'par1': 9995, 'extraparam1': 22}
val: {'par1','user','pass','extraparam1'}
Run Code Online (Sandbox Code Playgroud)

针对数据dict ..以及for循环中迭代val的所有代码引发异常

kee*_*n3d 7

result = arr.get('key1', arr.get('key2', arr.get('key3')))
Run Code Online (Sandbox Code Playgroud)