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

0 投票
1 回答
864 浏览
提问于 2025-04-16 08:56

我正在尝试使用这段代码

result = arr['key1'] or arr['key2'] or arr['key3']

解释一下: 我想从字典的键中获取值,但这些键的可用性取决于环境。这不是关于 None 的问题……可能只有一个 arr 的键是定义好的……

所以有没有像 is_defined() 这样的函数或方法呢?

我们在 Python 中怎么做呢?

更新

我在这里遇到了一个新问题…… 代码 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)

代码 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)

看看 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'}

在数据字典中引发了异常……而且在循环中所有遍历 val 的代码都会出错

1 个回答

7
result = arr.get('key1', arr.get('key2', arr.get('key3')))

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

撰写回答