相关疑难解决方法(0)

Python为什么不从函数返回我的mysql-connector游标?

当我从函数返回它时,Python(2.7.3)以某种奇怪的方式违反了我的mysql-connector游标。第一个例子很好用...

cnx = connect()
sql = "SELECT * FROM MyTable"
cursor = cnx.cursor()
cursor.execute(sql)
row = cursor.fetchone()
Run Code Online (Sandbox Code Playgroud)

但是,如果我返回游标并从外部尝试fetchone()(或fetchall()),它将引发异常。

def run_query():
    cnx = connect()
    sql = "SELECT * FROM MyTable"
    cursor = cnx.cursor()
    cursor.execute(sql)
    return cursor

mycursor = run_query()
row = mycursor.fetchone()
Run Code Online (Sandbox Code Playgroud)

扔...

File "/usr/lib/pymodules/python2.7/mysql/connector/cursor.py", line 533, in fetchone
  row = self._fetch_row()
File "/usr/lib/pymodules/python2.7/mysql/connector/cursor.py", line 508, in _fetch_row
  (row, eof) = self.db().protocol.get_row()
AttributeError: 'NoneType' object has no attribute 'protocol'
Run Code Online (Sandbox Code Playgroud)

尽管“打印类型(mycursor)”将打印“ mysql.connector.cursor.MySQLCursor”,这是事实。

Python对从函数返回的对象执行哪种邪恶的骚扰?(请记住,它将对模块传递的游标执行此操作……因此,这不像从“ import mysql.connector”作用域传递出去的对象一样。)

python mysql-connector python-2.7

5
推荐指数
1
解决办法
4956
查看次数

标签 统计

mysql-connector ×1

python ×1

python-2.7 ×1