这样可行(为简洁起见,省略了一些代码):
# main.py
cursor = db.cursor()
cursor.execute('foo')
就像这样:
# other.py
def do_something(script, cursor):
cursor.execute(script)
# main.py
from other import do_something
cursor = db.cursor()
do_something('foo', cursor)
但是(据我所知)"更低"功能范围应该能够访问"更高的" (全局?)范围的游标 - 为什么我需要将游标作为参数传递给我的函数?所以我尝试了这个:
# other.py
def do_something(script):
cursor.execute(script)
# main.py
from other import do_something
cursor = db.cursor()
do_something('foo')
返回:
NameError: global name 'cursor' is not defined
我认为"可能对光标运行查询是一个写操作,而不是读取"并试过:
# other.py
def do_something(script):
global cursor
cursor.execute(script)
# main.py
from other import do_something
cursor = db.cursor()
do_something('foo')
同样的错误。我错过了什么?
编辑:听起来像#34;如何在不同模块之间创建全局变量名称"这是错误的问题。正确的问题 - 如果我有一个主处理程序,一个SQL游标和一个常用函数文件,我应该如何构建我的文件/导入?答案 0 :(得分:0)
试试这段代码
# other.py
def do_something(script):
global cursor
cursor.execute(script)
# main.py
from other import do_something
import other
other.cursor = db.cursor()
do_something(script)
我的英语不好,所以你可以阅读这些答案