0

I've been trying to understand the behaviour of global variables in Python. From here, I gather that I can read any variable defined in an outer scope. If I want to modify it in an inner scope, I have to "declare" as global in that inner scope, so that Python looks for it according to its scoping rules and knows I'm not creating a new local variable.

But why does the following correctly print the values of variables a and b?

import sys

def func1():
    print a # will print 1
    print b # will print 2
    return

def main():
    global a 
    a = 1
    global b
    b = 2
    func1()
    return 0

if __name__ == '__main__':
    status = main()
    sys.exit(status)
Community
  • 1
  • 1
Ricky Robinson
  • 21,798
  • 42
  • 129
  • 185

0 Answers0