python – One line if-condition-assignment

python – One line if-condition-assignment

I dont think this is possible in Python, since what youre actually trying to do probably gets expanded to something like this:

num1 = 20 if someBoolValue else num1

If you exclude else num1, youll receive a syntax error since Im quite sure that the assignment must actually return something.

As others have already mentioned, you could do this, but its bad because youll probably just end up confusing yourself when reading that piece of code the next time:

if someBoolValue: num1=20

Im not a big fan of the num1 = someBoolValue and 20 or num1 for the exact same reason. I have to actually think twice on what that line is doing.

The best way to actually achieve what you want to do is the original version:

if someBoolValue:
    num1 = 20

The reason thats the best verison is because its very obvious what you want to do, and you wont confuse yourself, or whoever else is going to come in contact with that code later.

Also, as a side note, num1 = 20 if someBoolValue is valid Ruby code, because Ruby works a bit differently.

Use this:

num1 = 20 if someBoolValue else num1

python – One line if-condition-assignment

In one line:

if someBoolValue: num1 = 20

But don’t do that. This style is normally not expected. People prefer the longer form for clarity and consistency.

if someBoolValue:
    num1 = 20

(Equally, camel caps should be avoided. So rather use some_bool_value.)

Note that an in-line expression some_value if predicate without an else part does not exist because there would not be a return value if the predicate were false. However, expressions must have a clearly defined return value in all cases. This is different from usage as in, say, Ruby or Perl.

Leave a Reply

Your email address will not be published. Required fields are marked *