开发者

python: equivalent to Javascript "||" to override non-truthful value

In Javascript I can do this:

function A(x) { return x || 3; }

This returns 3 if x is a "non-truthful" value like 0, null, false, and it returns x otherwise. This is useful for empty arguments, e.g. I can do A() and it will evaluate as 3.

Does Python have an equivalent? I guess I could make one out of the ternary operator a if b else c but was wondering what people use for t开发者_如何转开发his.


You can use or to do the same thing but you have to be careful because some unexpected things can be considered False in that arrangement. Just make sure you want this behavior if you choose to do it that way:

>>> "" or 1
1
>>> " " or 1
' '
>>> 0 or 1
1
>>> 10 or 1
10
>>> ['a', 'b', 'c'] or 1
['a', 'b', 'c']
>>> [] or 1
1
>>> None or 1
1


The answer is or:

def A(x):
    return x or 3
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜