我运行此脚本时出现错误(显示在标题中):
import psycopg2
conn = None
conn_string = "host='localhost' dbname='localdb' user='someuser' password='abracadabra'"
def connectDb():
if conn is not None: # Error occurs on this line
return
# print the connection string we will use to connect
print "Connecting to database\n ->%s" % (conn_string)
conn具有全局范围,在函数中引用之前被赋值为None - 为什么出现错误消息?
答案 0 :(得分:7)
在python中,您必须使用global
关键字声明要在函数中更改的全局变量:
def connectDb():
global conn
if conn is not None: # Error occurs on this line
return
...
我的猜测是,您将在函数后面的某处为conn
分配一些值,因此您必须使用global
关键字。