请问Python可以终止对象实例化进程呢?,python实例,如图,这是一个类的部分定
请问Python可以终止对象实例化进程呢?,python实例,如图,这是一个类的部分定
如图,这是一个类的部分定义,我的问题是如果try中的语句执行失败之后能否终止对象的实例化过程,然后返回错误,因为如果不能终止的话,那么程序在执行了except的语句过后,会继续执行之后的语句,即继续实例化其它的方法,这时候就会在中途报错,即使我在另一个文件里这样调用,程序也会在类的定义里的self.conn.close()位置处报错,提示self.conn未定义
所以请问,Python怎样才能终止对象的实例化过程呢,其它面向对象的语言是不是也有类似的功能
** import ConnectSQL try: self.Login = ConnectSQL.ConnectSQL() except: print '网络无法连接'**
我觉得连接数据库这个操作最好能单独列出一个函数类似这样,没有必要去终止对象的实例化
class ConnectSQL(): def __init__(self): self.conn = None ... def connect_db(...): #连接数据库操作 def close_connect(): if self.conn: self.conn.close()
有两种方案:
class Connection(object): def __init__(self,*args,**kwargs) pass def __enter__(self): pass def __exit__(self,exc_type, exc_value, traceback): passwith Connnection() as con: pass
或者:@contextmanager
用法类似于 with xxx as x:pass
注意如果要确定一定要终止类里面的实例,采用__del__进行垃圾回收。
class Connection(object): def __init__(self,*args,) self.con= ConnectSQL.Con(*args,) def close(self): self.con.close() def __del__(self): self.con.close()
最好抛个异常出去,连接不上直接中断
编橙之家文章,
相关内容
- 求opencv python详细配置方法,opencvpython,opencv pytho
- 汉字在python中出错,中文格式写入文件后出现乱码怎么
- 想用web端完成调度后台的python程序要怎么写?,webpyt
- django unicode类型字段值转换成int类型时报错invalid liter
- python34_d.lib这个文件在哪层目录下,,我自己写了一个例
- Python中Django上传大型文件需要怎么配置,pythondjango,Dj
- 去哪找python初学者学习的好项目,github可以吗,pythongi
- 想把网页数据全都抓下来,需要什么样的思路?,网页思
- Python定义变量list int应该怎样定义?,pythonlist,如题。如
- Python flask url参数应该如何写,pythonflask,常见 url 传参中
评论关闭