Python局部变量初始化

2024-01-22

我对 python 相当陌生,我想知道局部变量是如何工作的。让我们从一个简单方法的示例开始:

def do_sth():
    local_dict = { 'a': 1, 'b': 2, 'c': 3, ... }
    ...

我们假设 local_dict 的使用方式类似于 const 变量。问题是:每次调用 do_sth() 时都会创建它,还是创建一次并保存在 do_sth() 内部的某个位置?


您可以使用以下命令查看解释器做了什么dis module:

def do_sth():
    d = {'a':2, 'b':3}
    print(id(d))


import dis
dis.dis(do_sth)

将打印

  2           0 BUILD_MAP                2
              3 LOAD_CONST               1 (2)
              6 LOAD_CONST               2 ('a')
              9 STORE_MAP           
             10 LOAD_CONST               3 (3)
             13 LOAD_CONST               4 ('b')
             16 STORE_MAP           
             17 STORE_FAST               0 (d)

  3          20 LOAD_GLOBAL              0 (id)
             23 LOAD_FAST                0 (d)
             26 CALL_FUNCTION            1
             29 PRINT_ITEM          
             30 PRINT_NEWLINE       
             31 LOAD_CONST               0 (None)
             34 RETURN_VALUE        

这表明解释器在每次调用函数时都会重建该值。

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

Python局部变量初始化 的相关文章

  • 使用 pythonbrew 编译 Python 3.2 和 2.7 时出现问题

    我正在尝试使用构建多个版本的 python蟒蛇酿造 http pypi python org pypi pythonbrew 0 7 3 但我遇到了一些测试失败 这是在运行的虚拟机上 Ubuntu 8 04 32 位 当我使用时会发生这种情
  • 在 python 程序中合并第三方库的最佳实践是什么?

    下午好 我正在为我的工作编写一个中小型Python程序 该任务需要我使用 Excel 库xlwt and xlrd 以及一个用于查询 Oracle 数据库的库 称为CX Oracle 我正在通过版本控制系统 即CVS 开发该项目 我想知道围
  • SQLAlchemy 通过关联对象声明式多对多自连接

    我有一个用户表和一个朋友表 它将用户映射到其他用户 因为每个用户可以有很多朋友 这个关系显然是对称的 如果用户A是用户B的朋友 那么用户B也是用户A的朋友 我只存储这个关系一次 除了两个用户 ID 之外 Friends 表还有其他字段 因此
  • 通过最小元素比较对 5 个元素进行排序

    我必须在 python 中使用元素之间的最小比较次数来建模对 5 个元素的列表进行排序的执行计划 除此之外 复杂性是无关紧要的 结果是一个对的列表 表示在另一时间对列表进行排序所需的比较 我知道有一种算法可以通过 7 次比较 总是在元素之间
  • 使用 matplotlib 绘制时间序列数据并仅在年初显示年份

    rcParams date autoformatter month b n Y 我正在使用 matpltolib 来绘制时间序列 如果我按上述方式设置 rcParams 则生成的图会在每个刻度处标记月份名称和年份 我怎样才能将其设置为仅在每
  • 如何从网页中嵌入的 Tableau 图表中抓取工具提示值

    我试图弄清楚是否有一种方法以及如何使用 python 从网页中的 Tableau 嵌入图形中抓取工具提示值 以下是当用户将鼠标悬停在条形上时带有工具提示的图表示例 我从要从中抓取的原始网页中获取了此网址 https covid19 colo
  • Spark KMeans 无法处理大数据吗?

    KMeans 有几个参数training http spark apache org docs latest api python pyspark mllib html highlight kmeans pyspark mllib clus
  • Python 函数可以从作用域之外赋予新属性吗?

    我不知道你可以这样做 def tom print tom s locals locals def dick z print z name z name z guest Harry print z guest z guest print di
  • AWS EMR Spark Python 日志记录

    我正在 AWS EMR 上运行一个非常简单的 Spark 作业 但似乎无法从我的脚本中获取任何日志输出 我尝试过打印到 stderr from pyspark import SparkContext import sys if name m
  • 从 Flask 访问 Heroku 变量

    我已经使用以下命令在 Heroku 配置中设置了数据库变量 heroku config add server xxx xxx xxx xxx heroku config add user userName heroku config add
  • BeautifulSoup 中的嵌套标签 - Python

    我在网站和 stackoverflow 上查看了许多示例 但找不到解决我的问题的通用解决方案 我正在处理一个非常混乱的网站 我想抓取一些数据 标记看起来像这样 table tbody tr tr tr td td td table tr t
  • 添加不同形状的 numpy 数组

    我想添加两个不同形状的 numpy 数组 但不进行广播 而是将 缺失 值视为零 可能最简单的例子是 1 2 3 2 gt 3 2 3 or 1 2 3 2 1 gt 3 2 3 1 0 0 我事先不知道形状 我正在弄乱每个 np shape
  • 如何在ipywidget按钮中显示全文?

    我正在创建一个ipywidget带有一些文本的按钮 但按钮中未显示全文 我使用的代码如下 import ipywidgets as widgets from IPython display import display button wid
  • 如何在Python中对类别进行加权随机抽样

    给定一个元组列表 其中每个元组都包含一个概率和一个项目 我想根据其概率对项目进行采样 例如 给出列表 3 a 4 b 3 c 我想在 40 的时间内对 b 进行采样 在 python 中执行此操作的规范方法是什么 我查看了 random 模
  • 对年龄列进行分组/分类

    我有一个数据框说df有一个柱子 Ages gt gt gt df Age 0 22 1 38 2 26 3 35 4 35 5 1 6 54 我想对这个年龄段进行分组并创建一个像这样的新专栏 If age gt 0 age lt 2 the
  • 类型错误:预期单个张量时的张量列表 - 将 const 与 tf.random_normal 一起使用时

    我有以下 TensorFlow 代码 tf constant tf random normal time step batch size 1 1 我正进入 状态TypeError List of Tensors when single Te
  • 发送用户注册密码,django-allauth

    我在 django 应用程序上使用 django alluth 进行身份验证 注册 我需要创建一个自定义注册表单 其中只有一个字段 电子邮件 密码将在服务器上生成 这是我创建的表格 from django import forms from
  • 使用 Python 的 matplotlib 选择在屏幕上显示哪些图形以及将哪些图形保存到文件中

    我想用Python创建不同的图形matplotlib pyplot 然后 我想将其中一些保存到文件中 而另一些则应使用show 命令 然而 show 显示all创建的数字 我可以通过调用来避免这种情况close 创建我不想在屏幕上显示的绘图
  • 从列表指向字典变量

    假设你有一个清单 a 3 4 1 我想用这些信息来指向字典 b 3 4 1 现在 我需要的是一个常规 看到该值后 在 b 的位置内读写一个值 我不喜欢复制变量 我想直接改变变量b的内容 假设b是一个嵌套字典 你可以这样做 reduce di
  • 导入错误:没有名为 site 的模块 - mac

    我已经有这个问题几个月了 每次我想获取一个新的 python 包并使用它时 我都会在终端中收到此错误 ImportError No module named site 我不知道为什么会出现这个错误 实际上 我无法使用任何新软件包 因为每次我

随机推荐

  • 在 Vaadin 7 应用程序中使用推送在多个客户端之间显示相同的数据

    我想向多个客户端共享同一组数据 我需要使用推送来自动更新他们在屏幕上的视图 我已阅读问题和答案 Vaadin 7 应用程序中推送的最小示例 Push https stackoverflow com q 27808460 642706 现在我
  • UITableView 背景图片

    我正在尝试设置一个带有滚动背景的表格视图 背景是重复的云图像 作为实现这一点的初步尝试 我使用了以下代码 void viewDidLoad aTableView backgroundColor UIColor colorWithPatter
  • Objective C switch 语句和命名整型常量

    我有一个控制器 它充当两个滚动视图的委托 这两个滚动视图放置在由上述视图控制器管理的视图中 为了区分我尝试使用的两个滚动视图switch语句 而不是简单的指针比较if陈述 我已将两个滚动视图标记为 0 和 1 如下所示 NSUInteger
  • 如何在没有子查询的情况下重写此查询?

    所以我想做的是 我有一个表 其中包含商店中某些商品的一些价格 我想要做的是找到该商店出售的所有商品的平均价格 以及商店中出售的所有类似商品的总和 我的专栏是 item no branch 总金额 真正重要的是我必须避免子查询 所以我不能做类
  • 设计代理类的真正目的是什么?

    我一直在研究代理类 但我不明白设计它的全部想法 据我所知 到目前为止 它是一个包装对象 可以控制对原始对象的访问 但如果我们想控制它 为什么我们不能设计具有这些访问机制的原始类呢 我读到这些代理对象对于跟踪方法调用 将方法调用路由到远程服务
  • SKSpriteNode 滑动不稳定?

    我创建了以下精灵套件节点 SKSpriteNode megadeth megadeth SKSpriteNode spriteNodeWithImageNamed megadeth rocks png megadeth name aweso
  • 在同一类中使用不同的格式序列化多个 DateTime 属性

    我有一个具有两个 DateTime 属性的类 我需要使用不同的格式序列化每个属性 我该怎么做 我试过 JsonConvert SerializeObject obj Formatting None new IsoDateTimeConver
  • 当没有遇到 return 语句时,Perl 从子例程中返回什么?

    我今天遇到了这个问题 并认为发布问答是明智的做法 因为我找不到类似的内容 如果您发现此问题重复 请随时投票结束 以下子程序有条件地return http perldoc perl org functions return html输出 我认
  • Selenium IDE 中上传文件的脚本

    上传文件的脚本 在 selenium IDE 或 如何使用selenium自动上传文件 您可以使用 selenium type xpath of text box path of your file 命令 类型目标 文本框的xpath of
  • 尝试将 Moles 与 NUnit 一起使用。获得“Moles 需要测试成为一个仪器化过程”

    我尝试将 Moles 与 NUnit 一起使用 但收到以下错误 Moles 需要测试才能成为仪表化过程 我还在 Visual Studio 2008 中使用 Visual NUnit 来实现此功能 欢迎任何帮助 为了让 Moles 能够与
  • CIFilter 的便利初始化器给出了奇怪的异常

    这是我正在尝试的代码 typealias Parameters Dictionary
  • 在javascript中添加两个大数字[重复]

    这个问题在这里已经有答案了 我一直在尝试使用 javascript 添加以下数字 76561197960265728 912447736 遗憾的是 由于 JavaScript 中的四舍五入 它不会得到正确的数字 我需要该数字作为字符串 我尝
  • 在 Brave 中发送 XMLHttpRequest 时,引用者的这种行为是有意的吗?

    var xhr new XMLHttpRequest xhr open GET https httpbin org true xhr send 当运行上面这个简单的代码时example org Chrome devtools 中的请求标头显
  • Bootstrap 4 卡相同高度和底部对齐

    我正在尝试对齐 Bootstrap 4 卡并使用d flex随着align self stretch对于卡片本身 这太棒了 但是 我不知道如何让红色边框的部分浮到底部 使用 Bootstrap 4 的任何想法公用事业 https getbo
  • 如何使用 Kivy 获取文本输入的值

    我是 Kivy 的新手 因为我无法在 PySide 上练习 一些动态库损坏了或者我不知道是什么 所以我想尝试这个巨大的工具 我现在迷路了 我尝试这样做 在 Kivy 应用程序中获取文本输入值 https stackoverflow com
  • gsub 或 scan 中的匹配位置

    实现匹配位置的最佳方法是什么 由 对于使用时的每场比赛gsub or scan hello gsub Regexp last match offset 0 first gt 01234 See 正则表达式 last match http w
  • 使用谷歌地图上的 pincode 获取纬度和经度

    我需要加载给定 pin 码或区号的 Google 地图位置 我尝试使用地理编码器方法来查找给定地址的纬度和经度 当给定位置或区域但不适用于密码 特别是印度 时 此功能有效 有没有任何方法或途径可以使用 pincode 查找给定区域的纬度和经
  • Excel,将总和应用于多列上的某些单元格

    Excel 将总和应用于多列上的某些单元格 A B C D A 1 2 3 4 B 1 2 3 4 C 1 2 3 4 D sum A1 A2 A3 so A4 3 我们如何将总和分别应用于 B C D 列上的 4 个 B C D 您需要动
  • Google 电子表格 - 将多列转换为一列

    我想循环遍历 Google 电子表格中的一组行 如下所示 XXX 123 234 234 YYY 789 098 765 ZZZ 76 123 345 最终结果需要是 XXX 123 XXX 234 XXX 234 YYY 789 YYY
  • Python局部变量初始化

    我对 python 相当陌生 我想知道局部变量是如何工作的 让我们从一个简单方法的示例开始 def do sth local dict a 1 b 2 c 3 我们假设 local dict 的使用方式类似于 const 变量 问题是 每次