Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python`with`语句用法的其他内置或实用示例?_Python_Python 2.7_With Statement_Conceptual_Contextmanager - Fatal编程技术网

python`with`语句用法的其他内置或实用示例?

python`with`语句用法的其他内置或实用示例?,python,python-2.7,with-statement,conceptual,contextmanager,Python,Python 2.7,With Statement,Conceptual,Contextmanager,在python的文件对象实现的\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu用例之外,有没有人有一个真实的例子?最好是你自己的,因为我试图实现的是一种更好的方法来概念化将要使用它的案例 我已经读过了 而且,上有几个例子 典型的答案是: with (acquire some mutex): # do stuff with mutex 有很多用途。就在标准库中,我们有: sqlite3;使用将转换为提交或中止事务 un

在python的文件对象实现的
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
用例之外,有没有人有一个真实的例子?最好是你自己的,因为我试图实现的是一种更好的方法来概念化将要使用它的案例

我已经读过了


而且,

上有几个例子

典型的答案是:

with (acquire some mutex):
    # do stuff with mutex
有很多用途。就在标准库中,我们有:

  • sqlite3
    ;使用将转换为提交或中止事务

  • unittest
    ;使用作为上下文管理器可以断言引发异常,然后测试异常的各个方面

  • 十进制
    ;管理十进制数精度、舍入和其他方面

  • 线程化
    锁定、信号量和条件等对象;让您获得一组语句等的锁

  • 警告
    模块为您提供了一个警告

  • 许多库提供关闭行为,就像默认的文件对象一样。这些包括和模块

  • Python自己使用了几个上下文管理器来检查特定警告、捕获stdout、忽略特定异常和临时设置环境变量


每当您想要检测代码块何时开始和/或结束时,都需要使用上下文管理器。在使用
之前,请尝试:
最后:
套件以保证清理,请使用上下文管理器。

我发现使用
上下文管理器
版本的
os.chdir()
:退出
chdir()
返回原始目录非常有用

这允许您模拟通用(Bourne)shell脚本模式:

(
cd <some dir>
<do stuff>
)
使用上下文管理器:

with os.chdir(<some dir>):
    <do stuff>
使用os.chdir()的
后者好多了

with os.chdir(<some dir>):
    <do stuff>