当前位置: 首页> 房产> 市场 > 开发一个同城app需要多少钱_工信部备案管理系统官网入口_sem优化_上海app网络推广公司电话

开发一个同城app需要多少钱_工信部备案管理系统官网入口_sem优化_上海app网络推广公司电话

时间:2025/7/10 13:24:04来源:https://blog.csdn.net/flurry_heart/article/details/144542646 浏览次数:0次
开发一个同城app需要多少钱_工信部备案管理系统官网入口_sem优化_上海app网络推广公司电话

一、什么是上下文管理器

  任何实现 __enter__()__exit__() 方法的对象都可称为 上下文管理器。上下文管理器对象可以使用 with 关键字。这样说的话,文件(file)对象也实现了上下文管理器。

  __enter__() 方法返回资源对象,这里就是你将要打开的那个文件对象,__exit__() 方法处理一些清除工作。

class File:def __init__(self, filename, mode):self.filename = filenameself.mode = modedef __enter__(self):print("__enter__()方法执行了!")self.file = open(self.filename, self.mode)return self.filedef __exit__(self, *args):print("__exit__()方法执行了!")self.file.close()

  现在,File 类实现了上下文管理器,可以使用 with 语句了。

with File("text.txt", "w") as f:print("writing...")f.write("hello world!")

  这样就无需显示地调用 close() 方法了,由系统自动调用,哪怕中间出现异常,close() 方法也会被调用。

  我们也可以使用 @contextmanager 装饰器实现上下文管理器。

from contextlib import contextmanager@contextmanager
def my_open(path, mode):f = open(path, mode)yield ff.close()
with my_open("text.txt", "w") as f:print("writing...")f.write("hello, this is a simple context manager!")

之所以使用上下文管理器,是因为在开发过程中一般都会使用系统资源(文件、网络、设备等),此时我们在使用完毕之后一定要关闭。一般关闭使用 xxx.close() 方法,但是这种方式在产生异常的情况下不会被自动调用,即可能出现资源没有被正确的关闭,这会导致系统资源一直占用。因此,我们需要使用更简单,但是更有效的方式,即 with 来使用。

上下文管理器,简单的来说分为 2 部分,一部分是申请资源,另外一部分是释放资源,而在 with 中使用资源,with 会自动调用申请资源以及释放资源的代码。

关键字:开发一个同城app需要多少钱_工信部备案管理系统官网入口_sem优化_上海app网络推广公司电话

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: