pymysql游标不关闭

pymysql cursor doesn't close

在 PyMySQL 库中,在 cursors.py 中调用了以下函数:

def __enter__(self):
  return self

def __exit__(self, *exc_info):
  del exc_info
  self.close()

这意味着如果我在with 语句中使用游标class,每当我离开嵌套块时游标应该关闭。为什么它保持不变?

db = pymysql.connect(config)

with pymysql.cursors.Cursor(db) as cursor:
    print(cursor)

print(cursor)

还有:

db = pymysql.connect(config)

with db.cursor() as cursor:
    print(cursor)

print(cursor)

两种形式 return 游标对象打印两次(一次在 with 语句内,一次在 with 语句外?我做错了什么吗?

关闭游标不会清空游标,只是将其从数据库中分离出来。请尝试打印 cursor.connection。

此外,我认为您希望 "with" 关键字删除有问题的对象,但它实际上只是进入和退出函数周围的语法糖。