Python快速入门 | python中频繁使用到的语句:牛逼的 with 语句

接着上篇,我们继续来说说 Python 中常常会用到的语句。

with

with 语句可以说是 Python 中 “人生苦短,我用 Python” 的代表之一,它可以使得我们在编写代码的时候非常简短,且行之有效。

举一个简单的例子,

本文隐藏内容 登陆 后才可以浏览
ok,以上就是我要跟你说的,with 语句的工作方式,简单点说,enter 方法做一些初始化操作,exit 做一些擦屁股的操作。总结一下就是:

1.通过 with 语句可以得到一个上下文管理器

2.执行对象

3.加载 __enter__ 方法

4.加载 __exit__ 方法

5.执行 __enter__,

6.as 可以得到 enter 的返回值

7.拿到对象执行相关操作

8.执行完了之后调用 __exit__ 方法

9.如果遇到异常,__exit__ 可以获取到异常信息

10.在 __exit__ 中处理异常,返回 True

11.继续执行 with 后面的语句。

那么现在的你,能否写一个 with 语句的例子,加深下自己对它的认识了呢?

21 Replies to “Python快速入门 | python中频繁使用到的语句:牛逼的 with 语句”

  1. kelvinweng说道:

    是有点吃力,最近也在看小帅b推荐的深入浅出python量化交易,里面函数和类的方法引用的参数,包括写法,真的比较难理解,很抽象。比如这篇里面的“self”,为什么一定要有呢?定义的方法cal(),实际上是不需要参数的,为何python就规定要写上self呢?还有return self,return True也是。希望后面能搞清楚。

  2. 305012398说道:

    为什么不直接with Handsomeb() as h,而要单独又写个get_Handsomeb()函数绕一下

  3. rush_B说道:

    self ,type, value, trace
    对象,类型,值,trace 是什么? 不知道说的对不对

  4. Hans·Rain说道:

    如果在__enter__中返回的对象是self,是不是可以理解为h.cal()中的这个h算是实例化对象?

      1. tao说道:

        对“面向对象”的编程思想总是很懵逼啊,“函数”也用得不顺手,期待慢慢能提高

  5. 小帅b说道:

    如果这一篇你看得有点吃力,没关系,就先知道了 with 的写法好了,往后我跟你说明白对象和方法后,你再来看这篇会很容易理解。

  6. slient说道:

    请问帅b,后面会不会讲到魔术方法,装饰器,元类这些,最近自动化的课程学完了,基础的架子会搭建了,但是用到项目里面发现总还有可以优化的地方,但是这些涉及到的知识属于测试开发的课程了,暂时不想报班了。。。

回复 shuqing 取消回复