美文网首页
python with关键字——I/O好伴侣

python with关键字——I/O好伴侣

作者: 读书三万本 | 来源:发表于2020-09-24 23:55 被阅读0次

    学习python的朋友都知道文件读写的基本操作,通常我们读写文本的姿势是这个样子的:

    f = open(file_name)
    ...
    f.close()
    

    每次定义一个文件读写对象,在操作完成后,我们都需要进行关闭操作,如果你一不小心忘记了,恭喜你中奖了?你的程序很可能发生内存泄露,然后内存溢出,然后就挂了。

    这样的事情发生的概率挺高的,我以前就总是这样,因为打开文本后,很可能一顿操作,代码写得很开心,自然忘记风险,忘记f.close ...那么怎么避免类似的事情发生呢?这时候with就该出场了。

    我们只需要:

    with open(file_name) as f:
           ...
    

    with作用的代码块执行结束后,会自动进行资源释放,自动啊,妈妈再也不用担心我的内存!!!

    后来学了tensorflow 1.0 发现了with的妙用,上下文管理,简单来说,利用

    with tf.name_scope(name, reuse=...):
            balaba
    

    我们可以把with下的所有变量都定义到name命名空间下,然后呢?后续可以重复使用。帮助我们实现网络参数共享。不过到了tensorflow2.0 这个功能不美丽了,你只要定义网络layer类似于函数对象,后续想要调用几次就几次,参数都是共享的。

    今天就分享到这,希望大家进行文件读写时养成使用with的好习惯!

    参考:

    相关文章

      网友评论

          本文标题:python with关键字——I/O好伴侣

          本文链接:https://www.haomeiwen.com/subject/nbkxuktx.html