4

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.

2 Answers 2

10

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 
Sign up to request clarification or add additional context in comments.

Comments

5

The answer is or:

def A(x): return x or 3 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.