问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python open与json.dumo()

发布网友 发布时间:2022-04-22 17:16

我来回答

2个回答

懂视网 时间:2022-05-10 14:50


所以 open() 这个函数在不同模式下会返回不同的对象,包括 TextIOWrapper/BufferedReader/BufferedWriter 这三种

继续看上面这三个类的定义,发现这几个类还继承了其他的几个类,这里我就不领着你看了,直接用 Visio 画了个类层次示意图,如下


其中蓝色矩形表示 class,蓝色连线表示继承关系,蓝色连线上的数字表示这个继承关系的代码在源码中的哪一行

可以看到 open() 函数所返回的几个 class,最终都继承于 IOBase 这个 class,而在这个 class 中,就实现了 __enter__() 和 __exit() 两个 magic method,具体代码位于 _pyio.py 的第 428 行到 437 行

 ### Context manager ###

 def __enter__(self):
 """Context management protocol. Returns self."""
 self._checkClosed()
 return self

 def __exit__(self, *args):
 """Context management protocol. Calls close()"""
 self.close()
只要有__enter__和__exit__方法,就能用在with语句里,open返回的对象有这两个方法,就可以了,不必在open方法内做什么手脚。 Python 的上线文管理器使用with关键字,用来定义with后面这个缩进级别,进入和跳出的行为,是语法糖的一种。open是一个调用用于实例化file类的函数,而file类只不过是一个拥有__enter__和__exit__(这种前后都有两个下划线的在Python中叫做“魔法方法”,除了这两个还有很多,有兴趣可以去查一下)的类,用在with中时,程序会自动在进出这个程序块时调用这两个函数,如果没用with就要手动管理,自己调用close()。如果想要自己实现类似的功能,用回调就,或者单独封装成装饰器(装饰器其实也是Python的一种语法糖)都可以。 跟Java的Closeable一样 定义好释放资源的方式 通过语法糖隐藏部分重复代码 你google context manager就有结果了

热心网友 时间:2022-05-10 11:58

with是Python的上下文管理器,使用with打开文件可自动管理文件流,无需人工关闭。as定义别名,即open()函数返回值的别名。with...as怎么用请看Python教材。
json.mp()作用就是将numbers这个列表给mp成json数组写到文件f_obj中去。追问如果我不定义别名不行吗
直接json.mp (numbers,'文件名')

追答不行,mp的第二个参数要求是一个文件类型的对象,而不是一个字符串。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
孤胆枪手怎么设置局域网啊、 我家小狗刚领来,没有名字,拜托大家起个名字。 护肤品代加工 水浒Q传跨服PK是怎么回事啊 新水浒Q传什么叫PK保护状态,上号不到一分钟就被打,求解 水浒Q传 为什么要pk有什么好处? 为什么贷款每次都审核失败 有谁能说一下手机贷审核不通过的原因吗?我都审核好多次了都不能通过... 贷款审核失败是什么原因 为什么贷款未通过审核 请问python 2.7中要怎样才可以使用中文? 代码中不能出现任何中文,但是3.4却可以。初学 python2的环境下 为什么type(1)==int==True显示的是False python 的open方法,有打开文件大小的限制吗? python 怎么打开文件 404 Not Found python中关于open()函数的TypeError Linux下python中的Open函数报错 在Python里open无法打开别目录的文件 python使用open命令打开文件失败 龙岗坪地兴业银行周六日营业几点开始到几点结束 深圳住房公积金管理中心上班时间 在word文档中,有翻下页的快捷键吗? word怎么直接跳到指定页 女朋友的宠物死了,我该如何安慰她? 女朋友的狗死了怎么安慰 女友的小狗死了,我该怎么安慰她? 女孩家里的宠物鸟死了怎么安慰她 安慰朋友失去宠物的暖心句子有哪些? word里怎么显示多页?快捷键是什么?那个命令? word如何快捷分页 python open().readline() 和for结合的一个小问题 如何才能知道自己有没有办信用卡 中山市濠头土石方工程有限公司怎么样? 惠达6285和6218 惠达hdc6218比较箭牌ae1022 如何辨别惠达6218马桶是不是正品? 惠达马桶哪款冲劲大 惠达马桶大小水按钮区分 惠达马桶哪个型号好 惠达马桶用着用着冲力小了怎么回事 八年级下册数学勾股定理教学方法 请问,有没有以下几何结论?如果有,最好给出证明(思路),谢谢! 勾股定理教案 勾股定理问题苏教版初二的 什么是勾股定理?怎么算,请举个例子说明 苏教版初二数学下册知识点 苏教版九年级上册数学第37页复习巩固3,4题答案 急求八年级上册苏教版勾股定理的书中练习(类似于练一练) 勾股定理教程? 苏教版初中数学知识提纲