pythonvariable-assignment

Assign value if none exists


I am trying to find the syntax that will allow me to set a variable to a specific value only if it wasn't previously assigned.

Basically I want:

# only if var1 has not been previously assigned
var1 = 4

Solution

  • This is a very different style of programming, but I always try to rewrite things that looked like

    bar = None
    if foo():
        bar = "Baz"
    
    if bar is None:
        bar = "Quux"
    

    into just:

    if foo():
        bar = "Baz"
    else:
        bar = "Quux"
    

    That is to say, I try hard to avoid a situation where some code paths define variables but others don't. In my code, there is never a path which causes an ambiguity of the set of defined variables (In fact, I usually take it a step further and make sure that the types are the same regardless of code path). It may just be a matter of personal taste, but I find this pattern, though a little less obvious when I'm writing it, much easier to understand when I'm later reading it.