在Python中,一行中的多个“with”语句是否相当于嵌套的“with”语句?

2024-01-06

这两个陈述等价吗?

with A() as a, B() as b:
  # do something

with A() as a:
  with B() as b:
    # do something

我问是因为两者a and b改变全局变量(这里是张量流)和b取决于所做的更改a。所以我知道第二种形式可以安全使用,但是是否相当于将其缩短为第一种形式?


是的,列出多个with根据以下说法,一行中的语句与嵌套它们完全相同Python 2.7 语言参考 https://docs.python.org/2/reference/compound_stmts.html#the-with-statement:

对于多个项目,上下文管理器的处理方式就像嵌套了多个 with 语句:

with A() as a, B() as b:
   suite

相当于

with A() as a:
   with B() as b:
       suite

类似的语言出现在Python 3 语言参考 https://docs.python.org/3/reference/compound_stmts.html#the-with-statement.

更新至 3.10+

版本 3.10 中的更改:支持使用分组括号将语句分成多行。

with (
   A() as a,
   B() as b,
):
   SUITE
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Python中,一行中的多个“with”语句是否相当于嵌套的“with”语句? 的相关文章

随机推荐

  • CSS 变换不影响子元素?

    我试图让卡片元素在悬停时向上移动 然后在不再悬停时向下移动 我目前正在通过使用来实现这一点transform and translate在CSS中 但是 我注意到这可能会影响子元素以及我希望此动画受影响的元素 这是我目前拥有的卡片的 HTM
  • 如何将md5字​​符串转换为普通文本? [复制]

    这个问题在这里已经有答案了 我已将用户密码以 MD5 形式保存在数据库中 现在我想以明文形式向用户发送密码 有什么方法可以将 MD5 字符串转换为明文吗 MD5 是一个hashing http en wikipedia org wiki C
  • 如何防止PHP页面被直接访问?

    下面是我用作 AJAX 脚本一部分的 JavaScript 片段 如何防止 user back end friends php 被直接访问 我不希望人们能够访问domain com user back end friends php 并查看
  • Node.js 在控制台上按下按键之前没有响应

    我有一个 Node js 应用程序 在 Windows Server 2008 上运行 我在这里面临一个奇怪的问题 我的应用程序执行多个异步任务 向socket io MySQL HTTP 连接 TCP 连接等发送数据 我的 Node 应用
  • 如何使用 @OneToMany 集合进行分页

    假设我有一个 Post 实体和 Comment 实体以及一对多关系 Entity class Post OneToMany List
  • Windows 服务在安装时选择用户或系统帐户

    安装Windows服务时 有没有办法让安装的用户在特定用户帐户和计算机帐户 例如LocalSystem 之间进行选择 我了解如何在构建时通过服务安装程序属性执行此操作 但不是在安装过程中执行此操作 Doobi Eric 根据我的经验 Win
  • 有没有办法自动输出requirements.txt?

    我想输出requirements txt对于我在 PyCharm 中的 Python 3 项目 有任何想法吗 尝试以下命令 pip freeze gt requirements txt
  • 如何同时实现 Laravel 5.5 和 Angular 4 项目?

    如果我想用 Laravel 5 5 实现 Angularjs 4 或 2 Angular 将使用 Laravel 的 API 最好的方法应该是什么 1 我应该在 xampp htdocs 中创建两个文件夹 例如 c xampp htdocs
  • 在 Spring4+STOMP+SockJS 应用程序中配置外部代理(RabbitMQ)

    我正在开发一个聊天应用程序 该应用程序使用 Spring4 Messaging 开发 并使用 SockJS 实现 STOMP 当我使用时该应用程序运行良好简单消息代理 config enableSimpleBroker queue topi
  • 如何在 GWT 表单面板中发布整个页面

    使用 GWT FormPanel 时 提交表单后 它会发布表单但不会重定向到操作 url 有谁能够帮助我 formPanelObject getElement
  • SSIS存储过程使用临时表2008和2014

    我目前正在编写一个 SSIS 包 它通过 OLE DB 源从存储过程中检索数据 存储过程包含一个相当讨厌的查询 我可以通过使用临时表来改进它 如果我将这些临时表切换为表变量 逻辑读取次数会从大约 130 万次跃升至大约 5600 万次 我对
  • 如何在android列表视图中使整行可点击

    我有一个ListView 其内容假设android在第一行 黑莓在第二行 iphone在第三行 所以现在我想让ListView的整行可点击 但是当我点击listview行的上面内容时 它只执行点击事件 但我如果我单击连续的任何位置 则应该执
  • 如何向已调试的Android应用程序授予权限?

    I have
  • Gitlab CI 作业在运行 mocha 测试之前成功

    我发现我的 Gitlab 作业正在成功并在实际测试运行之前结束 首先 我为我的应用程序安装所需的依赖项 然后调用mocha命令 但作业在它们产生任何输出之前就成功了 我的 gitlab ci yml image node lts alpin
  • ParticleSystem 中 BufferGeometry 的 Z 缓冲区问题

    在我的应用程序中 我遇到了 z 缓冲区的问题 我有一个粒子系统 其中的点具有看起来像球体的纹理 但有两个问题我无法同时解决 球体要么在 z 缓冲区中正确排序但不透明 要么它们是透明的但排序不正确 请看看我的JSfiddle http jsf
  • Java 泛型 - 类型信息消失?

    好的 我知道 Java 泛型对于粗心的人来说可能是一个雷区 但我刚刚遇到了一个不直观的 无论如何对我来说 行为 我想知道是否有人可以解释 首先 这是一个编译类 public class Dummy public List
  • Gradle 食谱“为其他插件创建源和资源目录”

    我可以在食谱中看到以下内容 task create dirs lt lt sourceSets all java srcDirs each it mkdirs sourceSets all resources srcDirs each it
  • 在 Google Cloud 中将 http 重定向到 https

    我已经设置了一个负载均衡器 它接受来自用户的 https 连接 然后 计算引擎使用 http 连接连接到负载均衡器 我在根文件夹中编写了以下 htaccess 文件 RewriteEngine On RewriteCond HTTPS of
  • 如何计算图表的趋势线?

    谷歌不是我的朋友 自从我在大学上统计课以来已经很长时间了 我需要计算图表上趋势线的起点和终点 有没有一种简单的方法可以做到这一点 使用 C 工作 但任何适合你的语言 感谢大家的帮助 我已经离开这个问题几天了 刚刚回来 能够将其拼凑在一起 不
  • 在Python中,一行中的多个“with”语句是否相当于嵌套的“with”语句?

    这两个陈述等价吗 with A as a B as b do something with A as a with B as b do something 我问是因为两者a and b改变全局变量 这里是张量流 和b取决于所做的更改a 所以