对于具有以下init方法的数据库类:

class DB:

def __init__(self, dbprops):

self.dbprops = dbprops

self.conn = self.get_connection(self.dbprops)

debug("self.conn is %s" %self.conn)

def __enter__(self):

pass

def __exit__(self, exc_type, exc_val, exc_tb):

if not self.conn is None:

self.close()

对于调用它的客户端方法,如下所示:

with DB(self.dbprops) as db:

if not db:

raise Exception("Db is None inside with")

return db.get_cmdline_sql()

输出显示调试消息-因此成功调用了init方法:

File "./classifier_wf.py", line 28, in get_cmdline_mysql

raise Exception("Db is None inside with")

例外:Db在里面是None

更新:修复了enter方法以返回数据库对象的问题.但是需要有关如何调用它的帮助:

def __enter__(self, dbprops):

return DB(dbprops)

用单个参数调用它显然不起作用:

with DB(dbprops) as db:

TypeError: __enter__() takes exactly 2 arguments (1 given)

现在,我不再关注,因为应该自动填写“自我”.

python 作用with_即使__init__方法有效,Python中的With语句仍返...相关推荐

  1. python定义私有变量的方法_Python类中的 私有变量和私有方法

    默认情况下,Python中的成员函数和成员变量都是公开的(public),在python中没有类似public,private等关键词来修饰成员函数和成员变量. 在python中定义私有变量只需要在变 ...

  2. python使用get和post方法_python爬虫中get和post方法介绍以及cookie作用

    首先确定你要爬取的目标网站的表单提交方式,可以通过开发者工具看到.这里推荐使用chrome. 这里我用163邮箱为例 打开工具后再Network中,在Name选中想要了解的网站,右侧headers里的 ...

  3. python创建线程_多种方法实现 python 线程池

    最近在做一个爬虫相关的项目,单线程的整站爬虫,耗时真的不是一般的巨大,运行一次也是心累,,,所以,要想实现整站爬虫,多线程是不可避免的,那么python多线程又应该怎样实现呢?这里主要要几个问题(关于 ...

  4. python正则化函数_正则化方法及Python实现

    正则化有助于克服过度拟合模型的问题.过度拟合是偏差和方差平衡的概念.如果过度拟合,机器学习模型将具有较低的准确性.当我们的机器学习模型试图从数据中学习更多属性时,就会添加来自训练数据的噪声.这里的噪声 ...

  5. Python中的__init__()方法整理中(两种解释)

    解释一:看懂了就不用看第二种了 __init__()方法是Python学习当中重要的基础知识,__init__()方法意义重大的原因有两个.第一个原因是在对象生命周期中初始化是最重要的一步:每个对象必 ...

  6. 什么是python中子类父类_零基础入门:python中子类继承父类的__init__方法实例

    前言: 今天为大家带来的内容是零基础入门:python中子类继承父类的__init__方法实例!具有不错的参考意义,希望在此能够帮助到各位!(喜欢的话记得点赞转发关注不迷路哦) 使用Python写过面 ...

  7. python中__init__方法_关于python中__init__方法理解

    在理解__init__方法之前,我们需要搞明白,什么时候才需要用到的这个方法 什么是__init__? __init__方法在python中是类的初始化,通俗来讲,就是每次只要你去创建一个类的实例对象 ...

  8. python导包和魔幻方法

    魔幻方法 __init__ 在Python中定义类经常会用到__init__函数(方法),首先需要理解的是,两个下划线开头的函数是声明该属性为私有,不能在类的外部被使用或访问.而__init__函数( ...

  9. oracle数据导入到python,Python导入oracle数据的方法 -电脑资料

    作者:Sephiroth 字体:[增加 减小] 类型:转载 这篇文章主要介绍了Python导入oracle数据的方法,涉及Python读取csv文件信息再插入到Oracle数据库的相关技巧,具有一定参 ...

最新文章

  1. python手机版下载3.7.3-Python 3.7.0 来了!
  2. 比较器Comparable(内部比较器)和Comparator(外部比较器)
  3. 在游戏运营行业,Serverless 如何解决数据采集分析痛点?
  4. linux系统下deepin eclipse不能显示源码报class File Editor Source not found
  5. python中包的循环导入_具有继承的包中的循环导入依赖项
  6. Leet Code OJ 8. String to Integer (atoi) [Difficulty: Easy]
  7. selenium webdriver 启动三大浏览器Firefox,Chrome,IE
  8. 【IT笔试面试题整理】有序数组生成最小高度二叉树
  9. xp如何快速锁定计算机,Window XP中快速锁定计算机两法
  10. Java的getcelltype用法_java getCellType的替代方法
  11. Android测试提升效率批处理脚本
  12. php图片上传有黑色背景,php Imagemagick jpg黑色背景
  13. 了解J1939协议和J1939数据记录仪(车辆工程机械中的黑匣子)
  14. 用数据分析的手段,看2019年CSDN博客之星总评选
  15. C#图片处理:生成大尺寸图片,以边框颜色填充
  16. win10突然复制粘贴用不了了
  17. 树模型(1)-入门指南
  18. 图片显示上下有空白的解决办法
  19. 核电站问题 解题报告
  20. zz:Android APP Monkey信息自动收集脚本

热门文章

  1. 将matlab的.m文件打包为独立可执行程序.exe —— 基于Matlab R2015b
  2. 特征选择(feature_selection)
  3. vue语法 `${ }` (模版字符串)
  4. java filter 返回错误消息_利用java filter 实现业务异常拦截 跳转到错误信息提示页面...
  5. aws iot 连接时间_AWS IoT Core 定价
  6. hadoop入门-在windows上编译x64位hadoop
  7. Java 8 - Stream实战
  8. 深入理解分布式技术 - 分布式调用跟踪
  9. MySQL-索引优化篇(3)_利用索引优化锁
  10. Spring Cloud【Finchley】-17 使用Zuul为单个或全部微服务提供容错与回退功能