I'm new to Python, so this is probably a simple scoping question. The following code in a Python file (module) is confusing me slightly:
if __name__ == '__main__':
x = 1
print x
In other languages I've worked in, this code would throw an exception, as the x variable is local to the if statement and should not exist outside of it. But this code executes, and prints 1. Can anyone explain this behavior? Are all variables created in a module global/available to the entire module?
ifstatement above does not hold true (i.e.,__name__is not'__main__', for example when you import the module instead of executing it top-level), thenxwill never have been bound, and the subsequentprint xstatement will throw aNameError: name 'x' is not defined. - Santa