I\'m currently learning Python, and I have to work on a Python 2.7 project.
Accessing \"module scope\" variables in functions of the module itself is a bit confusing
You probably want to read up on Python's namespaces. Way 1 is correct but generally unnecessary, never use 2. An easier approach is to just use a dict (or class or some other object):
my_globals = {'var': None}
def my_func():
my_globals['var'] = 'something else'
Assignments always go into the innermost scope and the innermost scope is always searched first, thus the need for the global keyword. In this case you aren't assigning to a name, so it's unnecessary.