gpt4 book ai didi

python - lambda或其他方法可以用作python中的默认参数吗

转载 作者:太空宇宙 更新时间:2023-11-04 07:29:44 26 4
gpt4 key购买 nike

我想使用一个在您调用该函数时初始化的默认参数,因此每次调用它时它的默认参数都不同。为了说明我要问的是你想要一个时间差异函数,如果没有提供第二次时间则默认为当前时间:

通常你会这样做。

def tdiff(target_time, curr_time=None):
if curr_time == None:
curr_time = datetime.datetime.now()
return curr_time - target_time

但去掉 if 语句会更好。这可以用 lambda 完成吗? (像这样)

def tdiff(target_time,  curr_time= lambda : datetime.now() ): 
return curr_time - target_time

编辑:我知道 lambda 不起作用。其他方法行得通吗?

最佳答案

Can this be done with lambda ?

没有。您所拥有的在语法上是有效的,但是 curr_time 的默认值最终成为 lambda 函数,而不是调用它时返回的 datetime 值。这可以解决:

if callable(curr_time):
curr_time = curr_time()

但到那时,您还不如使用问题中包含的 if curr_time is None: 方法。

(注意比较应该是is None,而不是== None。)

关于python - lambda或其他方法可以用作python中的默认参数吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50653182/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com