python:好用的 with 语法
手动清理资源占用是个很痛苦的事情,比如刚学编程时候,老鸟就建议:写完open xxx 之后一定要写一个配对儿的 close,然后再往他俩中间写逻辑。
python 现在有个好玩的东西,利用上下文可以自动释放掉一个对象:
class test(): def __init__(self,msg): print(msg) def __enter__(self): print('Enter Object test') def __exit__(self, exc_type, exc_val, exc_tb): print('Exit Object test') object=test('Hello') print('***head of code block***') with object as t: print('Did something here...') print('***end of code block***')
运行结果如下:
Hello ***head of code block*** Enter Object test Did something here... Exit Object test ***end of code block*** Process finished with exit code 0
于是,对于系统自带的文件操作就有了下面这样的用法:
content='' with open('test.txt','a',encoding='UTF-8') as f: f.write('Hello World\n') with open('test.txt','r',encoding='UTF-8') as f: content=f.read() print(content)
*注意两个f不是同一个对象
是不是很爽?几下就搞定了O(∩_∩)O

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
python:get和set
java里面有一件事情很让人崩溃,就是通过类里面的public函数访问类的私有属性对外提供接口,从数据库里面读出来的字段包装成对象之后,最重要的一件事情就是赶紧把字段做成private的,然后开始写public的get和set方法。这个过程很麻烦,但是却很重要,小小的一对儿函数给程序员提供了无限的可能(这里可以来脑补一个程序员大战黑产的惨烈故事...),然而,这种东西也确实很烦人,假如你反射了一个有几十个字段做属性的对象,这一堆get和set可是着实叫人抓狂,有些IDE甚至提供了自动生成get/set方法的功能(比如eclipse家族)。。。 那么python里面要怎样处理这种情况呢? 先来看看最土的办法: class Test: def __init__(self): self.__key='init' def get_key(self): return self.__key def set_key(self,key): self.__key=key 看起来跟java没什么两样嘛...... 然后注意,我要变型了: class Student(): def __init__(self...
- 下一篇
python:深入pip的安装源
python 的 pip是可以指定更新源的,具体操作如下 指定单次安装源 pip install SomePackage-i https://pypi.tuna.tsinghua.edu.cn/simple 指定全局安装源 在windows10上: 打开终端,输入 set,在输出的一大堆结果里面找:APPDATA=,然后打开这个目录,找pip文件夹,如果没有就创建一个,然后在这个文件夹里面创建一个名为pip.ini的文件,写入以下内容: [global] timeout = 6000 index-url = https://pypi.tuna.tsinghua.edu.cn/simple 我用的是清华大学源。国内比较好用的源有: pypi.python.org 官方源 pypi.douban.com 豆瓣源,福州 pypi.hustunique.com 华中科技大学源,武汉 pypi.tuna.tsinghua.edu.cn 清华源,北京
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2全家桶,快速入门学习开发网站教程
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8安装Docker,最新的服务器搭配容器使用