if 语句中初始化的变量的范围是什么?

2024-03-17

这可能是一个简单的范围界定问题。 Python 文件(模块)中的以下代码让我有点困惑:

if __name__ == '__main__':
    x = 1
    
print x

在我使用过的其他语言中,这段代码会抛出异常,因为x变量是局部的if语句并且不应该存在于它之外。但是这段代码执行并打印 1。任何人都可以解释这种行为吗?模块中创建的所有变量都是全局的/对整个模块可用吗?


Python 变量的作用域是分配它们的最里面的函数、类或模块。控制块如if and while块不算数,因此在块内分配的变量if其作用域仍然是函数、类或模块。

(由生成器表达式或列表/集合/字典理解定义的隐式函数do计数,就像 lambda 表达式一样。您不能将赋值语句填充到其中任何一个中,但 lambda 参数和for子句目标是隐式赋值。)

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

if 语句中初始化的变量的范围是什么? 的相关文章

随机推荐

  • 如何引用 AWS CDK 中的现有 VPC 终端节点?

    如何查找并引用堆栈中的现有 VPC 终端节点 以便将其传递给 API Gateway RestApi 以获取私有 API msshenke 的答案返回 Ivpc 我需要的是 vpc 端点引用 这就是我发现的 https docs aws a
  • 如何让鼠标滚轮与 Silverlight 4 ScrollViewer 一起正常工作

    当我在 Silverlight 4 中使用以下 xaml 时 ScrollViewer 将无法识别鼠标滚轮 除非我单击滚动条拇指 并将鼠标保持在滚动条上 同时转动鼠标滚轮
  • 使用局部变量还是内联链方法更好? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 如果我有一系列方法调用 每个方法的值用于下一次调用 我应该将它们存储在局部变量中 如下所示 DynamicForm filledForm For
  • 在 XAML 中绑定 MapIcon

    我正在尝试使用 MapControl 显示当前查看位置的 MapIcon 在我的 XAML 中 我有
  • 模拟集成测试

    如何模拟集成测试所需的众多依赖项 我使用 Mockito 进行 纯 单元测试 在这种情况下 纯粹 意味着测试单个类 模拟它的所有依赖项 美丽的 现在进行集成测试 假设在这种情况下 集成测试将测试如下内容 消息被放入队列中 消息已 处理 响应
  • 如何在 WooCommerce 中创建多个具有相同 SKU 的简单产品?

    我想在 WooCommerce 中创建多个具有相同 SKU 的简单产品 我在管理设置中搜索 但找不到任何启用此功能的设置 有没有什么钩子可以让我禁用这个功能 如果您想完全禁用 SKU 功能 那么您必须使用wc product sku ena
  • 测试飞行组 - 如何将构建发送到组?

    苹果在 TestFlight Groups 上的公告称 将您的测试人员分组以快速发送构建 提供 单独说明要关注的位置 并将操作应用于 TestFlight 中同时有多位测试人员 我该怎么做呢 我已经设置了我的组 我的版本已上传并通过了 Be
  • 不平衡学习:导入错误:无法导入名称“MultiOutputMixin”

    我已经重新安装了最新的 scikit learn 和不平衡学习 我还检查了所有其他库 以确保它们与不平衡学习兼容 我只想运行一个简单的RandomOverSample 但我收到以下导入错误消息 import imblearn from im
  • 有没有办法可以判断 SMTP 服务器是否期望客户端使用“隐式”SSL 与“显式”SSL 进行连接?

    SSL 可以是 显式 或 隐式 如以下链接所述 http help globalscape com help secureserver2 Explicit versus implicit SS htm http help globalsca
  • 子动态创建的组件与父组件之间的 Angular4 通信

    我有一个 Angular4 组件 一旦用户按下加号按钮 它就会动态创建许多子组件 子组件有一个输入选择 必须在选项选择后向父组件发送信息 子组件由 ComponentFactoryResolver 创建 如下所示 let component
  • 当 defaultRender 设置为非常基本的 ArcRendererConfig() 时,Flutter GoogleChart 饼图不会渲染

    图表按预期显示使用以下饼图小部件 class ABCPieChart extends StatefulWidget override ABCPieChartState createState gt ABCPieChartState clas
  • 在 Silverlight 应用程序中呈现 HTML 内容

    在我们的应用程序之一中 需要在 Silverlight 2 0 容器之一中显示项目符号列表 我们决定使用 HTML 标记文本来实现同样的目的 虽然 Google 上有很多可用的选项 例如覆盖 HTML div 容器等 但我想知道最可行的方法
  • 保存 python TempFile 的快速方法?

    我在用tempfile TemporaryFile进行一些中间处理 该程序在关闭时很好地为我删除了临时文件 这正是我大多数时候想要的行为 但是 有没有办法保存文件以供在发生 陷入 错误或其他异常情况时进行检查 寻找开始并使用shutil c
  • 使用 PHP 获取和存储信用卡信息的最佳实践

    我是否应该在前几个步骤 验证 审查购买 中使用会话 然后在最终提交中将信息输入到数据库中 饼干会被劫持并演变为诉讼吗 是不是风险太大了 如果存储信用卡号 我是否需要以任何特殊方式保护我的数据库 欢迎任何建议和个人经历 信用卡问题对于存储信用
  • Laravel 每个用户一次会话

    我正在尝试找出如何只允许每个用户一个会话 因此 如果有人在已经登录其用户帐户的情况下尝试登录 第一个会话将被销毁 并将被注销以仅允许当前会话 我正在关注这个 如何在 Laravel 中保持每个用户的单个会话 https anupamsaha
  • 如何在应用程序退出前执行代码 flutter

    我想检测用户何时退出我的应用程序并执行一些代码 但我不知道如何执行此操作 我尝试使用这个包 https pub dev packages flutter lifecycle state https pub dev packages flut
  • Mac Catalyst 应用程序:如何在不终止应用程序的情况下关闭窗口?

    我正在使用 Mac Catalyst 开发一个应用程序 当用户关闭 Mac 版本上的窗口时 应用程序将终止 可以通过使用以下方法来改变 Cocoa 中的这种行为 applicationShouldTerminateAfterLastWind
  • 打开一对“int”

    一些背景 我正在解析一个会计分类账 其中有account1 and account2 as int类型 每个都是 0 99999 范围内的数字 我有很多组合需要考虑 理想情况下我想使用类似的东西 switch account1 accoun
  • Rails:验证两列(一起)的唯一性

    我有一个Release模型与medium and country列 等等 不应该有releases共享相同的medium country组合 我该如何将其写为 Rails 验证 您可以使用独特性 http guides rubyonrail
  • if 语句中初始化的变量的范围是什么?

    这可能是一个简单的范围界定问题 Python 文件 模块 中的以下代码让我有点困惑 if name main x 1 print x 在我使用过的其他语言中 这段代码会抛出异常 因为x变量是局部的if语句并且不应该存在于它之外 但是这段代码