如果值不是None,我想给返回的函数分配一些值,或者分配不同的值,或者另一个不同的值... 我只想调用该函数一次。
我目前使用 try 和 except TypeError,但只适用于两个选项并且不是很干净。
try:
value = someFunction()["content"]
except KeyError:
value = someOtherFunction()["content"]
请您参考如下方法:
由于返回的值是 dict 类型,您可以使用 dict.get 在一行中实现相同的行为:
value = someFunction().get("content", someOtherFunction()["content"])
但是如果您只处理问题中提到的两个值,这将适用。为了处理多个函数链,您可以创建函数列表并检查返回的字典对象中的“键”:
my_functions = [func1, func2, func3]
for func in my_functions:
returned_val = func()
if 'content' in returned_val: # checks for 'content' key in returned `dict`
value = returned_val['content']
break
