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 this.
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With