Here `source` is already a global variable so `global` doesn't do anything. You use `global` if you want to make a local variable (say one defined inside a function) global. But declaring global variables that way can be a pain when it comes to debugging. Finally, `source` should be in all caps by convention because it's a global variable. More reading: http://stackoverflow.com/questions/4693120/use-of-global-keyword-in-python