Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.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关键字是什么;加上;用来做什么?_Python - Fatal编程技术网

python关键字是什么;加上;用来做什么?

python关键字是什么;加上;用来做什么?,python,Python,python关键字“with”用于什么 示例来自: 在python中,在处理非托管资源(如文件流)时使用with关键字。它类似于VB.NET和C#中使用语句的。它允许您确保在使用资源的代码完成运行时“清理”资源,即使抛出异常也是如此。它为try/finally块提供“语法糖” 发件人: with语句澄清了以前将使用try…finally块来确保执行清理代码的代码。在本节中,我将讨论该语句,因为它通常会被使用。在下一节中,我将检查实现细节,并展示如何编写与此语句一起使用的对象 with语句是一种控

python关键字“with”用于什么

示例来自:


在python中,在处理非托管资源(如文件流)时使用
with
关键字。它类似于VB.NET和C#中使用语句的
。它允许您确保在使用资源的代码完成运行时“清理”资源,即使抛出异常也是如此。它为
try/finally
块提供“语法糖”

发件人:

with
语句澄清了以前将使用
try…finally
块来确保执行清理代码的代码。在本节中,我将讨论该语句,因为它通常会被使用。在下一节中,我将检查实现细节,并展示如何编写与此语句一起使用的对象

with
语句是一种控制流结构,其基本结构为:

with expression [as variable]:
    with-block
表达式将被计算,它将生成一个支持上下文管理协议的对象(即,具有
\uuuuuu enter\uuuuuuu()
\uuuuuu exit\uuuuuuu()
方法)

根据Scott Wisniewski的评论更新固定VB标注。我确实混淆了
以及
使用
:


当您有两个相关的操作时,它非常方便 成对执行,中间有一段代码。经典 例如,打开一个文件,操纵该文件,然后 关闭它:

 with open('output.txt', 'w') as f:
     f.write('Hi there!')
上述with语句将在 嵌套的代码块。(继续阅读,以了解关闭的确切方式 使用with语句的优点是 保证关闭文件,无论嵌套块如何退出。如果 在块结束之前发生异常,它将关闭 外部异常处理程序捕获异常之前的文件。如果 嵌套块将包含return语句、continue语句或continue语句 break语句,with语句将自动关闭文件 在这些情况下也是如此


这可能会有所帮助:当您有两个相关的操作要成对执行,并且无论它们之间的嵌套代码如何退出,您都需要保证这两个操作的执行时,这会很方便。请参见此处的示例:使用哪些方法关闭打开的资源?如果我创建了自己的文件系统对象,该对象有自己的特殊打开/关闭方法,那么“with”关键字是否可以处理这些方法?或者“with”只与内置Python资源类型一起工作?在Python中,自定义对象似乎必须实现(或从实现的对象继承)
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。使用IronPython(python on.Net),您可以从IDisposable实现,这将涵盖它。不确定在纯Python或其他框架中最好的方法是什么。仅供参考:这会混淆VB.NET中的“using”语句,其行为类似于Python中的“with”块,而VB中的“with”语句则完全不同。请参阅以下内容:我希望JavaScript
…我想为python中使用with添加一个额外的答案,与打开或关闭文件无关:def test_new_user_invalid_email(self):“test creating user with no email raiser error”与self.assertRaises(ValueError):获取用户模型()。对象。创建用户(无,'pass@word')
 with open('output.txt', 'w') as f:
     f.write('Hi there!')