2024-09-28 21:02:39 发布
网友
考虑JavaScript中的一个函数: 如果在第一次调用中没有定义val,它将变成{}
val
function someRecursiveFn (item, val) { val = val || 0; ... }
如何在Python中分配相同的方法?在
这个:
def someRecursiveFn(item, val): val = val if val else 0
但是python习语if val非常宽泛,因为它可以有不同的含义,其中一些甚至可以表示特定上下文中的某些内容(例如0值),与javascript中的undefined值相反。在
if val
0
undefined
在python中,以下所有内容都被视为false:
val = val if val else 0
#if val is not None, it will assign itself, if it is None it will set val=0
可以在函数中使用关键字参数而不是普通参数:
def someRecursiveFn(item, val=None): val = val or 0
因此,如果val没有传递给函数调用,它将默认为None。在
None
val = val or 0将确保val=None或{}转换为0。如果您只关心首先定义val,则可以省略。在
val = val or 0
val=None
这个:
但是python习语
if val
非常宽泛,因为它可以有不同的含义,其中一些甚至可以表示特定上下文中的某些内容(例如0
值),与javascript中的undefined
值相反。在在python中,以下所有内容都被视为false:
val = val if val else 0
#if val is not None, it will assign itself, if it is None it will set val=0
可以在函数中使用关键字参数而不是普通参数:
因此,如果
val
没有传递给函数调用,它将默认为None
。在val = val or 0
将确保val=None
或{val
,则可以省略。在相关问题 更多 >
编程相关推荐