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
精彩评论