Python 如何在函数之间调用SQLite游标对象?
最近我对Python越来越熟悉了,正在编写一个简单的代码来访问SQLite数据库并通过SELECT查询显示数据。我一直在关注程序编程方面,因此数据库连接和数据检索被写入以下两个函数中Python 如何在函数之间调用SQLite游标对象?,python,sqlite,Python,Sqlite,最近我对Python越来越熟悉了,正在编写一个简单的代码来访问SQLite数据库并通过SELECT查询显示数据。我一直在关注程序编程方面,因此数据库连接和数据检索被写入以下两个函数中 def AccessDB(): global BCDB,curVehicle,VehicleTB BCDB = sqlite3.connect('D:\CabDB.sqlite') curVehicle = BCDB.cursor() VehicleTB = BCDB.cursor
def AccessDB():
global BCDB,curVehicle,VehicleTB
BCDB = sqlite3.connect('D:\CabDB.sqlite')
curVehicle = BCDB.cursor()
VehicleTB = BCDB.cursor()
def getData():
curVehicle.execute('SELECT * FROM Vehicle')
Result=curVehicle.fetchall()
print(Result[0])
List1.insert(0,Result[0][0])
然后是主程序:
AccessDB()
getData()
执行时,我得到以下错误:
line 57, in getData
curVehicle.execute('SELECT * FROM Vehicle')
NameError: name 'curVehicle' is not defined
第57行引用.execute语句。
我怀疑这意味着调用作用域时不接受全局变量可能是问题所在。
你知道这段代码有什么问题吗?简单地定义函数之外的变量对我来说很有用:
BCDB,curVehicle,VehicleTB = (0,0,0)
def AccessDB():
BCDB = sqlite3.connect('D:\CabDB.sqlite')
curVehicle = BCDB.cursor()
VehicleTB = BCDB.cursor()
def getData():
curVehicle.execute('SELECT * FROM Vehicle')
Result=curVehicle.fetchall()
print(Result[0])
List1.insert(0,Result[0][0])
您确实需要在函数外部定义一个变量,以便在函数内部修改它。AccessDB和getData是否与主程序在同一个模块中定义?