UnboundLocalError:局部变量 'conn' 在赋值前被引用
我在运行这个脚本时遇到了一个错误(标题中提到的)。
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——那为什么会出现这个错误信息呢?
1 个回答
13
在Python中,如果你想在函数里修改全局变量,就需要用到global
这个关键词来声明它。
def connectDb():
global conn
if conn is not None: # Error occurs on this line
return
...
我猜你是在函数的后面某个地方要给conn
赋值,所以你需要使用global
这个关键词。