Florian Lindner wrote: > Hello, > I have a little problem with the global statement. > > def executeSQL(sql, *args): > try: > import pdb; pdb.set_trace() > cursor = db.cursor() # db is <type 'NoneType'>. > [...] > except: > print "Problem contacting MySQL database. Please contact root." > sys.exit(-1) > > > db = None # Global Variable for DB connection > > def main(): > [...] > global db > db = MySQLdb.connect(...) > [...] > executeSQL(sql, args) > > > Why isn't the global variable db not written in main() to be a mysql > connection and still none type in executeSQL? > > Thanks, > > Florian
Because you have it to let executeSQL know that it is global or it creates a local copy in local namespace. def executeSQL(sql, *args): global db try: import pdb; pdb.set_trace() cursor = db.cursor() # db is <type 'NoneType'>. [...] except: print "Problem contacting MySQL database. Please contact root." sys.exit(-1) -Larry -- http://mail.python.org/mailman/listinfo/python-list