2024-06-11 17:06:28 发布
网友
def func1(): if my_api_success(): return my_api_value else return None x= 1 if func1() is None else func1()
我想捕获func1()的返回值。 有没有可能编写一行代码,而不调用func1()两次?你知道吗
func1()
如果没有条件,为什么不直接返回您要检查的条件值呢。你知道吗
或者你可以: X=func1() 如果X为无X=1
如果使用的是Python 3.8,则可以使用赋值表达式:
x = 1 if (value := func1()) is None else value
如果您使用的是早期的Python版本,则可以将next函数与一个生成器表达式一起使用,该生成器表达式迭代func1()的1元组,以实现与赋值表达式相同的效果:
next
x = next(1 if value is None else value for value in (func1(),))
最好的方法是按照@CharlieWindolf的建议来做,即使用:
x = func1() or 1
问题是它需要func1()返回python视为布尔值的值。你知道吗
要解决这个问题,您需要使用两行。你知道吗
y = func1() x = 1 if y is None else y
在Python3.8中,这可以使用assignment expression实现,但我还没有测试它。你知道吗
x = 1 if (y := func1()) is None else y
如果没有条件,为什么不直接返回您要检查的条件值呢。你知道吗
或者你可以: X=func1()
如果X为无X=1
如果使用的是Python 3.8,则可以使用赋值表达式:
如果您使用的是早期的Python版本,则可以将
next
函数与一个生成器表达式一起使用,该生成器表达式迭代func1()
的1元组,以实现与赋值表达式相同的效果:最好的方法是按照@CharlieWindolf的建议来做,即使用:
问题是它需要
func1()
返回python视为布尔值的值。你知道吗要解决这个问题,您需要使用两行。你知道吗
在Python3.8中,这可以使用assignment expression实现,但我还没有测试它。你知道吗
相关问题 更多 >
编程相关推荐