学习之上下文管理器

one_file = open('demo.txt', 'w')
one_file.write("xxxxx")
# raise ValueError  # 如果抛出异常将会报错
one_file.close()
with open('demo.txt', 'w') as f:  # open--返回的是IO--IO中实现了__enter__方法和__exit__方法f.write("aaaa")
class MyContextManger:def __init__(self, filename, mode, encoding='utf-8'):self.filename, self.mode, self.encoding = filename, mode, encodingdef __enter__(self):self.file_obj = open(self.filename, mode=self.mode, encoding=self.encoding)return self.file_objdef __exit__(self, exc_type, exc_val, exc_tb):  # 如果with语句出现异常的时候会接收# exc_type:异常的类型# exc_val:异常的值# exc_tb:异常的回溯# 如果返回None,则表示上下文管理器自己处理异常,即我们认为异常已经处理完毕了,Python解释器不会将异堂传递给上层代码。# 如果返回True,则表示上下文管理器已经成功处理了异常,并且异常已经被处理完毕了,Python解释器不会将弃常传递给上层代码。# 如果返回False或其他任意非空值,则表示上下文管理器没有成功处理异常,Python解释器会将异常传递给上层代码继续处理。self.file_obj.close()if __name__ == '__main__':with MyContextManger("demo.txt", "w") as mm:  # MyContextManger()创建对象会直接调用__init__方法mm.write("sssss")

with上下文管理器就是实现了 enter,__exit__方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/56481.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

论文速读:通过目标感知双分支蒸馏进行跨域目标检测(CVPR2022)

原文标题:Cross Domain Object Detection by Target-Perceived Dual Branch Distillation 中文标题:通过目标感知双分支蒸馏进行跨域目标检测 论文地址: https://arxiv.org/abs/2205.01291 代码地址: GitHub - Feobi1999/TDD 这篇…

做个工作中的退让者,生活中的前进者

先来分享一下什么是退让者原则,退让者原则,也被称为“幸福者退让原则”,是一种在面对冲突和挑衅时采取的策略,其核心理念是在拥有幸福生活的背景下,选择退让而非直接对抗,以保护个人及家庭幸福为优先。 为…

在IDEA中配置Selenium和WebDriver

前言: 在当今自动化测试和网络爬虫的领域,Selenium是一个被广泛使用的工具。它不仅能够模拟用户与浏览器的交互,还能进行网页测试和数据抓取。而为了使用Selenium与谷歌/Edge浏览器进行自动化测试,配置合适的WebDriver至关重要。本…

【前端】Bootstrap:栅格系统 (Grid System)

Bootstrap的栅格系统是该框架的核心部分之一,能够让开发者轻松创建响应式网页布局,适配各种屏幕尺寸和设备。栅格系统通过将页面划分为12列的布局结构,开发者可以根据内容的重要性和设计需求灵活控制元素的宽度和排列。 在这篇文章中&#x…

Java--练习--DVD管理系统

一、详细代码 package demo2.Test;import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner;public class DVD2 {//DVD管理系统//声明三个数组 用来存储 名称 状态 借出日期 借出次数String[] names new St…

学习使用linux的bash命令可以删除ps aux进程中今天之前指定运行进程的脚本

学习使用linux的bash命令可以删除ps aux进程中今天之前指定运行进程的脚本 脚本注意事项: 脚本 #!/bin/bash# 获取今天的日期(格式 YYYY-MM-DD) TODAY$(date %Y-%m-%d)# 使用 ps aux 查找所有名为 qipa250 的进程 # 并提取出 PID 和启动时间…

游戏引擎哪家强?选哪一个更有钱途

游戏引擎乃是构筑及开发视频游戏的软件架构。其供应一整套工具与库,以处置常见的游戏开发事务,诸如渲染图形、模拟物理、管控音频等等。凭借对游戏引擎的运用,开发人员能够将精力倾注于构建其游戏的独特之处,而非再度发明此类基础…

【游戏模组】极品飞车12无间风云冬季mod,冬天版本的无间风云你体验过吗

各位好,今天小编给大家带来一款新的高清重置魔改MOD,本次高清重置的游戏叫《极品飞车12无间风云》。 《极品飞车12:无间风云》是由Black Box游戏制作室开发的竞速类游戏,于2008年11月18日在北美首发、2008年11月21日在欧洲先后推…

【深入学习Redis丨第八篇】详解Redis数据持久化机制

前言 Redis支持两种数据持久化方式:RDB方式和AOF方式。前者会根据配置的规则定时将内存中的数据持久化到硬盘上,后者则是在每次执行写命令之后将命令记录下来。两种持久化方式可以单独使用,但是通常会将两者结合使用。 一、持久化 1.1、什么…

MySQL【知识改变命运】04

复习: 1:CURD 1.1Create (创建) 语法: insert [into] 表名 [column[,column]] valuse(value_list)[,vaule_list]... value_list:value,[value]...创建一个实例表: 1.1.1单⾏数据全列插⼊ values_l…

Python爬虫之正则表达式于xpath的使用教学及案例

正则表达式 常用的匹配模式 \d # 匹配任意一个数字 \D # 匹配任意一个非数字 \w # 匹配任意一个单词字符(数字、字母、下划线) \W # 匹配任意一个非单词字符 . # 匹配任意一个字符(除了换行符) [a-z] # 匹配任意一个小写字母 […

CSS之一

目录 简介 CSS 语法规范 CSS 代码风格 1.样式格式书写 2.样式大小写 CSS 基础选择器 选择器分类 标签选择器 类选择器 案例之画盒子 多类型使用 id选择器 通配符选择器 font-family设置字体 字体系列 字体大小 字体粗细 文字样式 字体复合属性 示例 CSS 文…

【力扣 | SQL题 | 每日3题】力扣1107,1112, 1077

今天三道mid题都可以用窗口函数轻松秒杀。 1. 力扣1107:每日新用户统计 1.1 题目: Traffic 表: ------------------------ | Column Name | Type | ------------------------ | user_id | int | | activity | enum …

mysql模糊查询优化

mysql模糊查询优化 一、合理使用索引 如下SQL举例: SELECT username,age FROM WHERE username LIKE ‘hysen%’ 如果username字段有索引,前缀匹配会走索引,如 ‘%hysen’或’%hysen%’ 则无法走索引。 二、使用反向索引 对于需要使用后缀…

解决关于HTML+JS + Servlet 实现前后端请求Session不一致的问题

1、前后端不分离情况 在处理session过程中,如果前后端项目在一个容器中,session是可以被获取的。例如如下项目结构: 结构 后端的代码是基本的设置值、获取值、销毁值的内容: 运行结果 由此可见,在前后统一的项目中&a…

Redis 配置小插曲

前言:当今,我们进行后端部署redis时候,总是会遇到各种问题,这不今天就发现了,redis在下载下来的时候,redis.windows.conf,文件中,默认是没有为redis配置密码才被允许进行登录的&…

《Linux从小白到高手》综合应用篇:详解Linux系统调优之服务器硬件优化

List item 本篇介绍Linux服务器硬件调优。硬件调优主要包括CPU、内存、磁盘、网络等关键硬件组。 1. CPU优化 选择适合的CPU: –根据应用需求选择多核、高频的CPU,以满足高并发和计算密集型任务的需求。CPU缓存优化: –确保CPU缓存&#x…

Go语言反射机制详解:通过反射获取结构体的字段和方法

在Go语言中,反射(Reflection) 是一种强大的工具,允许我们在程序运行时动态地检查和修改变量的类型、 反射在很多场景中都有广泛的应用,如ORM(对象关系映射)框架、序列化与反序列化工具等。 一、…

SAP导出excel报错:发现“EXPORT.XLSX“中的部分内容有问题。是否让我们尽量尝试恢复?如果您信任此工作簿的源,请单击“是”。

1.问题描述:SAP报表程序导出excel的时报错 2.问题原因 文本信息中包含了非法符号(SAP不认识的符号) 比如:NLSY10 3.解决方式,把这个文本信息特殊符号去掉,就可以恢复正常了。 怎么找这个特殊符号&#…

2019年计算机网络408真题解析

第一题: 解析:OSI参考模型第5层完成的功能 首先,我们需要对OSI参考模型很熟悉:从下到上依次是:物理层-数据链路层-网络层- 运输层-会话层-表示层-应用层,由此可知,题目要问的是会话层的主要功能…