zoukankan      html  css  js  c++  java
  • python 上下文管理器

    vi withCM.py #在Linux里编辑文件withCM.py

    下面是文件正文

    f = open("new.txt","w")
    print (f.closed) #输出判断文件是否关闭的属性
    f.write("Hello world!")
    f.close()
    print (f.closed)

    在Linux中执行程序

    $ python withCM.py
    False
    True

    例子2

    代码示例:

    coding:utf-8

    class VOW(object):
    def init(self,text):
    self.text = text
    def enter(self):
    self.text = "enter: " + self.text #添加前缀
    return self #注意,这里返回对象!并在下面将其赋值给了myvow
    def exit(self,exc_type,exc_value,traceback):
    self.text=self.text + "now exit!" #添加后缀

    with VOW("你好") as myvow:
    print(myvow.text)
    print(myvow.text)
    print(myvow.text)

    输出结果:
    enter: 你好
    enter: 你好
    enter: 你好now exit!

    解释:

    with EXPR as VAR: #等价于下面的操作

    VAR =EXPR #EXPR是某个类
    VAR =VAR.enter()
    try:
    BLOCK #执行语句块
    finally:
    VAR.exit()

    上下文管理器:

    规定对象的使用范围,超越范围则“采取处理”
    with…as…代码块

    任何定义了__enter__()和__exit__()方法的对象都可以用于上下文管理器

  • 相关阅读:
    素数
    超级素数
    SUMMARIZE 6.1
    广度优先搜索与八字码问题
    poj2352
    poj1198
    康托展开
    STL里的内存池实现
    构造函数,C++内存管理,内存泄漏定位
    内联函数,宏定义,内存对齐,类型转换
  • 原文地址:https://www.cnblogs.com/alisonzhu/p/5731176.html
Copyright © 2011-2022 走看看