I think there is a simpler answer to all this(not to take away from the other ones here though which are all great). When writing procedural code how would you like it if vars inside functions were automatically global. Your code with be blowing chunks in no time. Thats the reason for global declarations and instance.var :)
-- http://mail.python.org/mailman/listinfo/python-list