python - weakly-referenced object no longer exists? 数据库连接关闭问题
问题描述
#! python3import mysql.connectorclass A: def __init__(self):self.dbconfig = {....}self.conn = mysql.connector.connect(**self.dbconfig)self.cur = self.conn.cursor() def __del__(self):self.cur.close()self.conn.close()
数据库连接也成功了,但是执行完该类后就会报错:
Exception ignored in: <bound method A.__del__ of <__main__.**** object at 0x0000000001151358>>Traceback (most recent call last): File '****.py', line *, in __del__ File '*****Python35libsite-packagesmysqlconnectorcursor.py', line 344, in closeReferenceError: weakly-referenced object no longer exists
还请知道什么原因的司机解惑!万分感谢!按stackoverflow上的方案就是我写的这样,但是还是有问题,难道是我的翻译软件有问题?
问题解答
回答1:好吧,自己答一下。并不知道是什么原因导致的错误,等以后水平高点再来回答。暂时解决办法:
import mysql.connectorclass A: def __init__(self):self.dbconfig = {...}try: self.conn = mysql.connector.connect(**self.dbconfig) self.cur = self.conn.cursor() print(’mysql conn success!’)except: print('mysql conn error!') def __del__(self):#if self.cur:# self.cur.close()if self.conn: self.conn.close()if __name__ == ’__main__’: a = A()
补充:事实证明,不能在__del__()里面close游标
回答2:可能是你配置写错了,没连接上mysql如果是这句代码self.cur = self.conn.cursor()报的错,说明你没连接上
相关文章:
1. javascript - 使用form进行页面跳转,但是很慢,如何加一个Loading?2. python 计算两个时间相差的分钟数,超过一天时计算不对3. angular.js - 输入邮箱地址之后, 如何使其自动在末尾添加分号?4. javascript - 后台管理系统左侧折叠导航栏数据较多,怎么样直接通过搜索去定位到具体某一个菜单项位置,并展开当前菜单5. docker-machine添加一个已有的docker主机问题6. docker-compose中volumes的问题7. angular.js - angularjs 注入模块报错 很怪异... 求解惑8. javascript - ES6规范下 repeat 函数报错 Invalid count value9. javascript - html5的data属性怎么指定一个function函数呢?10. html5 - 为什么使使用vue cli 脚手架,post-css 没有自动对css3属性自动添加浏览器前缀呢?
