Basically I have some variables that I don’t want to preinitialize:
originalTime = None
recentTime = None
postTime = None
def DoSomething ( ) :
if originalTime == None or (postTime - recentTime).seconds > 5 :
...
I get compile error on the if:
UnboundLocalError: local variable 'originalTime' referenced before assignment
As you can see, all the variables have different relationship that either has to be set right (time, time + 5, etc) or None at all, but I don’t wanna set them to precalculated values when just declaring them to None is easier.
Any ideas?
I need to correct Jarret Hardie, and since I don’t have enough rep to comment.
The global scope is not an issue. Python will automatically look up variable names in enclosing scopes. The only issue is when you want to change the value. If you simply redefine the variable, Python will create a new local variable, unless you use the global keyword. So
Should output:
I second his warning that this is bad design.