python中的“全局名称未定义”概念

2023-11-26

我正在学习Python并阅读了有关此错误的博客,但我仍然无法清楚地理解这一点。这是我正在编写的代码片段:

for i in included:
    global signs,accounts, regions
    global sign_name, acc_name, rg_name
    if type == "regions":
        regions = i
        rg_name = regions['data']['region']
    if type == "accounts":
        accounts = i
        acc_name = accounts['data']['account']

    print("Stopping account " + acc_name + " in region " + rg_name)

NameError:未定义全局名称“acc_name”。

我正在使用Python 2.7 如果有人能帮助我理解 Python 中全局名称和启动的概念,那就太好了。 提前致谢。


不用担心:)欢迎使用Python!它抛出这个错误是因为它正在寻找一个不存在的全局变量——而它不存在的原因是因为你没有命中if type == "accounts"健康)状况!

尝试这个:

for i in included:
  global signs,accounts, regions
  global sign_name, acc_name, rg_name
  regions = "no region yet"
  acc_name = "no acc_name yet"
   if type == "regions"
     regions = i
     rg_name = regions['data']['region']
   if type == "accounts"
     accounts = i
     acc_name = accounts['data']['account']

   print("Stopping account " + acc_name + " in region " + rg_name)

这将清除错误,并至少让您看到可能出现的其他错误:)

我还要指出,正如我确信您会从其他人那里听到的那样,您没有理由在这种情况下声明全局变量。它最初是说“找不到全局变量”,因为在你输入之前global关键字,它没有触发if声明,所以首先它检查了locals()变量,但没有找到它,搜索了globals()变量,并没有发现它被踢和错误。

您可以删除global变量,它会像这样工作得很好:

for i in included:
   regions = "no region yet"
   acc_name = "no acc_name yet"
   if type == "regions"
     regions = i
     rg_name = regions['data']['region']
   if type == "accounts"
     accounts = i
     acc_name = accounts['data']['account']

   print("Stopping account " + acc_name + " in region " + rg_name)

另一个快速说明,从来没有type作为变量...使用type_反而。原因是type is a builtinPython 函数,如果你使用type作为变量,您不小心为该内置名称起了别名。

最后,稍微清理一下脚本:

# only use "i" when you're using numbers, otherwise just call it 
# the name of the data you're using :)
for account_data in included:
   regions = "no region yet"
   acc_name = "no acc_name yet"
   if type_ == "regions"
     rg_name = account_data['data']['region']
   if type_ == "accounts"
     acc_name = account_data['data']['account']

   # here's an example of Pythonic string formatting :)
   print("Stopping account {} in region {}".format(acc_name, rg_name))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python中的“全局名称未定义”概念 的相关文章

  • MissingGreenlet:greenlet_spawn 尚未被调用

    我正在尝试获取一对多关系中匹配的行数 当我尝试时parent children count I get sqlalchemy exc MissingGreenlet greenlet spawn尚未被调用 不能在这里调用await only
  • 类型错误:“int”对象不可迭代?

    我正在实现动态规划算法并收到此错误 这是我的代码 def shoot aliens s 0 10 s 0 0 s 1 0 for j in xrange 2 len aliens for i in xrange 0 j s j max s
  • pydantic 转换为 jsonable dict (不是完整的 json 字符串)

    我想用pydantic用于处理 api 和数据存储之间的数据 双向 因为它很好地支持我关心的几种本身不能 json 序列化的类型 它比当前方法具有更好的读取 验证支持 但我还需要创建 json serializeddict要写出的对象 fr
  • 命令“pip list”显示错误

    我想做 python 但我什至无法配置它 D 所以我在 Linux Mint 上安装了 pip 当输入 pip list 时出现错误 Exception Traceback most recent call last File usr li
  • SQLAlchemy:覆盖查询中关系定义的“order_by”

    所以 我有一个类似的模型 class Foo model tablename foo id Column Integer primary key True data relationship FooData cascade all dele
  • 标准化 Unicode

    在Python中是否有一种标准方法来规范化unicode字符串 以便它只理解可用于表示它的最简单的unicode实体 我的意思是 可以翻译类似序列的东西 LATIN SMALL LETTER A COMBINING ACUTE ACCENT
  • NE、SW 盒内的 GeoDjango

    我正在使用 Google 地图创建一个地理应用程序 并收到 2 个坐标的边界框 东北 西南 我有一个带有 PointField 的模型 from django contrib gis db import models class Place
  • 生产中的静态文件出现 Django 301 和 403 禁止错误

    我正在尝试使用 nginx 和 Gunicorn 在 ubuntu 14 04 vps 上部署 django 网站 但是我的 css 文件和 js 文件没有加载 我在默认的 django 开发服务器上开发了它 它运行得很好 但是当我部署我的
  • 如何测试 Django CreateView?

    我想在 Django 上练习测试 并且我有一个要测试的 CreateView 该视图允许我创建一个新帖子 我想检查它是否可以找到没有发布日期的帖子 但首先我测试带有发布日期的帖子只是为了习惯语法 这就是我所拥有的 import dateti
  • OSError: [Errno 8] MacOS 上的 GeckoDriver 和 Selenium 执行格式错误

    我正在使用 firefox gecko 驱动程序来制作机器人 我的机器人不断收到错误消息 我发现消息的来源是 from selenium import webdriver browser webdriver Firefox lines 我已
  • 从 pandas 数据框单元格中的混乱字符串中删除换行符?

    我使用了多种方法来分割和剥离 pandas 数据框中的字符串来删除所有 n 字符 但由于某种原因 它只是不想删除附加到其他单词的字符 即使我把他们分开 我有一个 pandas 数据框 其中有一列使用 Beautifulsoup 从网页捕获文
  • python中计算最小范数解或从伪逆得到的解最准确的方法是什么?

    我的目标是解决 Kc y 与伪逆 即最小范数解 c K y 这样模型 希望 是高次多项式模型f x sum i c i x i 我对不确定的情况特别感兴趣 在这种情况下 我们拥有比数据更多的多项式特征 方程很少 变量 未知数太多 colum
  • 将二进制解码为pdf

    我正在使用一个平台 当您将 pdf 上传到该平台时 它会使用 Python 中的 base64 编码转换 pdf 然后它将二进制字符串存储在数据库中 现在我想解码字符串并将它们写入本地文件夹 所以我想使用 with open 结构并向其传递
  • 为 Python 终端提供持久的历史记录

    有没有办法告诉交互式 Python shell 保留会话之间执行命令的历史记录 当会话运行时 在执行命令后 我可以向上箭头并访问所述命令 我只是想知道是否有某种方法可以保存一定数量的这些命令 直到下次使用 Python shell 时 这将
  • 使用 Python ast 模块访问语法树中的节点

    我正在玩 python ast 抽象语法树 我编写了以下内容 它访问了 AST 的所有节点 import ast class Py2Neko ast NodeVisitor def generic visit self node print
  • Python 3 基于列名相似度的匹配值

    我有以下形式的数据框 Year 1 Grade Year 2 Grade Year 3 Grade Year 4 Grade Year 1 Students Year 2 Students Year 3 Students Year 4 St
  • 无法在 Windows 10 上启动 Celery Worker,并出现“PicklingError”

    我有一个简单的测试代码 可以在 Linux 上成功运行 但它无法在我的 Windows 10 x64 计算机上运行 当我尝试启动 celery Worker 时 它抱怨无法恢复的错误 PicklingError 芹菜版本 3 1 20 在我
  • 如何在 django 模板中转义 {{ 或 }} ?

    姜戈款待 var 作为其模板中的一些变量 我该如何逃脱 var or or 这样 django 不会将其视为变量 p some text p 打印出来应该一模一样 Django 1 5 介绍 verbatim https docs djan
  • 创建目录中多个文本文件的字数统计字典

    我在 word count directory 函数中使用 build dict 函数来创建目录中三个文件的字数统计字典 我想创建三个字典 每个文件一次一个 并更新以前的字典 我的代码创建一个字典 word count 它同时组合所有三个字
  • 处理导入模块异常

    Python 中如何处理模块特定的异常 例如 如果我想捕获 python 中 sqlite3 模块抛出的错误 我将在 中放置什么来处理该异常 import sqlite3 try except 答案已经在这里了如何在Python中引用异常类

随机推荐

  • php8.2 找不到 Redis.dll

    我在 Windows 计算机上使用 PHP 8 2 启动 Redis 5 3 7 时遇到困难 当我尝试启动它时 会显示一个对话框 其中包含以下消息 无法在动态链接库c Program Files php ext php redis dll中
  • jdk1.7的javac在没有-cp选项的情况下找不到javafx jar

    我在这个网站和其他地方读过几个问题 这些问题表明安装 Oracle JDK7 时 不需要指定 jfxrt jar 的类路径当JDK正确安装时 不幸的是 我的安装似乎不正确 但我无法找出问题所在 我为 Red Hat Enterprise L
  • React onChange 处理程序在页面加载期间被多次调用

    我们正在尝试添加一个onChange我们的自定义组件之一的处理程序 即Checkbox组件 它是自定义组件的唯一原因是我们可以有效地封装intermediateHTML 属性 它看起来像这样
  • 即使使用包装类,SwingWorker 异常也会丢失

    我一直在努力解决 SwingWorker 吃掉后台任务中抛出的任何异常的可用性问题 例如 描述的在这个SO线程上 该线程很好地描述了问题 但没有讨论恢复原始异常 我收到的小程序需要向上传播异常 但我什至没能抓住它 我正在使用 SimpleS
  • 解析类 C 定义字符串的最有效方法?

    我有一组用类 C 语言编写的函数定义 其中包含一些附加关键字 这些关键字可以放在某些参数之前 例如与 无符号 或 寄存器 相同的方式 我需要分析这些行以及一些函数存根并从中生成实际的 C 代码 Flex Yacc 是最正确的方法吗 如果我对
  • Python 动态函数名

    我正在寻找一种更好的方法来调用基于 Python 中的变量的函数 而不是使用如下的 if else 语句 每个状态码都有对应的功能 if status CONNECT return connect args kwargs elif stat
  • 如何将 Jsoup 文档转换为 W3C 文档?

    我通过解析内部 HTML 页面构建了一个 Jsoup 文档 public Document newDocument String path throws IOException Document doc null doc Jsoup con
  • Datatables + PHP:多个表的服务器端处理

    如何获取数据表服务器端处理脚本来处理自定义查询 我需要从多个表中选择列并让数据表呈现它们 Datatables net 使用 PHP 的服务器端处理 SSP 总结如下 https datatables net examples server
  • 检测浏览器是否处于全屏模式

    有什么方法可以可靠地检测浏览器是否以全屏模式运行 我很确定没有任何浏览器 API 可以查询 但是有人通过检查和比较 DOM 公开的某些高度 宽度测量值来解决这个问题吗 即使它只适用于某些浏览器 我也有兴趣了解它 Chrome 15 Fire
  • Paho MQTT Android 服务唤醒活动

    我正在尝试使用 Paho Android MQTT 库 从这里下载的 例子服务申请工作正常 订阅和publish当示例应用程序运行时 方法也可以正常工作 当我close它 设备不再接收消息通知 有谁有如何正确修改 实现服务以接收消息的经验
  • 在 Pig 中将一个元组拆分为多个元组

    我喜欢从单个元组生成多个元组 我的意思是 我有包含以下数据的文件 gt gt cat data ID ColumnName1 Value1 ColumnName2 Value2 所以我通过以下命令加载它 grunt gt gt A load
  • php time() 和 microtime() 有时不一致

    在使用 microtime 使用 PHP 5 记录一些数据时 我遇到了一些与日志文件的时间戳似乎略有不同相的值 因此我只是尝试比较 time 和 microtime 的输出使用一个简单的脚本 usleep只是为了限制数据输出
  • ASP.NET:将值从用户控件传递到页面?

    我正在 ASP NET 使用 VB 中创建一个用户控件 该控件使用文本框上的自动完成 ajax 控件来获取值 然后我希望页面回发并根据从此控件传递给它的任何值运行一些代码 问题是 我不太确定如何做到这一点 我确信这很容易 我应该知道 但我不
  • 让ListView滚动到所选项目

    我有一个 WinRT C XAML 应用程序 其视图具有垂直的项目列表视图 根据项目的数量 ListView 显示垂直滚动条 这是 XAML 定义
  • D3.js强制有向图,每组颜色不同?

    我用 d3 js 插件制作了一个力导向图 我想根据节点和标签所属的组为节点和标签着色 我添加了颜色比例 var color d3 scale category20 并添加到节点变量 style fill function d return
  • 析构函数和垃圾收集器之间的区别

    我想知道析构函数和垃圾收集器之间有什么区别 析构函数用于在应用程序生命周期结束时处理所有未使用的对象 垃圾收集器的使用也是如此 垃圾收集器可以手动调用或完成在应用程序结束时 与析构函数相同 两者都是可选的 用于处理未引用的对象 任何人都可以
  • 使用自动属性实现单例是一个好主意吗?

    我最近发现了汽车属性并且非常喜欢它们 目前我正尝试在任何可以的地方使用它们 不仅仅是为了能够在任何地方使用它们 更多的是为了看看它们在大多数情况下的工作效果如何 现在我正在创建一个单例并想 嘿 让我们在这里也尝试一下自动属性 public
  • 使用 Winium 实现“Chrome Legacy Window”(Chromium) 的自动化

    我正在尝试使用 Winium 自动化 Windows 应用程序 GUI 该应用程序同时使用 WPF 窗口和 Chrome Legacy Window Chromium 窗口 我正在使用该工具 自动化间谍 检查 WPF 窗口内 GUI 元素的
  • PHP Codeigniter:下拉菜单上的 set_value

    我有以下观点 但我该如何申请set value没有默认为请选择
  • python中的“全局名称未定义”概念

    我正在学习Python并阅读了有关此错误的博客 但我仍然无法清楚地理解这一点 这是我正在编写的代码片段 for i in included global signs accounts regions global sign name acc