Python 中的不变性 [重复]

2023-11-28

我试图了解 python 中的不变性是如何工作的。由于字符串在 python 中是不可变的,所以我希望每次执行字符串操作时 id 都会改变,但它没有按预期工作。 例子: 对 t 的最后一次操作不会更改其 id。有什么想法吗?

Screen shot of the operation


我在不同的牢房里有一排苹果[memory containing variables (I will not go to the bit level)],其中一些是空的[cells containing garbage / empty value].

我拿出了一张。它在 3 号牢房里[logical address = 3].

我把它涂成蓝色(在我使用未来技术克隆它之后,用于演示不变性)[committed an operation on it, same could go for addition for integers].

我看了看该放在哪里,虽然 4 号单元是空闲的,但 3 号单元也是空闲的(因为“原来的”苹果已经不在这里了)!所以我把它放回单元格 3[and although we get a "new" apple, it has the same address].


你的也一样t(注意id是CPython中变量的内存地址),但是由于我们在这里讨论的是“苹果链”(字符串是由字符序列组成的,所以我们必须考虑我们必须继续序列的空间量,所以如果我我的记忆看起来像(_代表任意垃圾数据,'^'代表空格)

H e l l o _ _ _ _ _ B O O M
^ string pointer points here

我想将字符串更改为"Hello you",我可能会考虑使用可用空间:

H e l l o ^ y o u _ B O O M
^ string pointer points here

但是如果我想将字符串更改为"Hello world!",我必须寻找长度为的可用空间"Hello world!"其他地方(我们可能会在之后立即得到它)"BOOM",这在垃圾收集环境中很可能发生,看看你的 ID 有什么不同):

H e l l o ^ y o u _ B O O M _ H e l l o ^ w o r l d ! _ G A R B A G E
                              ^ string pointer points here
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 中的不变性 [重复] 的相关文章

  • 类的 IPython 表示

    我正在使用我创建的模块尝试 IPython 但它没有显示类对象的实际表示 相反 它显示类似的内容 TheClass module TheClass name I heavily在这个模块中使用元类 我有真正有意义的类表示 应该向用户显示 是
  • Pandas set_levels,如何避免标签排序?

    我使用时遇到问题set levels多索引 from io import StringIO txt Name Height Age Metres A 1 25 B 95 1 df pd read csv StringIO txt heade
  • Python - 比较同一字典中的值

    我有一本字典 d Trump MAGA FollowTheMoney Clinton dems Clinton Stein FollowTheMoney Atlanta 我想删除字符串列表中的重复字符串 该字符串是键的值 对于这个例子 期望
  • 计算另一个字符串中多个字符串的出现次数

    在 Python 2 7 中 给定以下字符串 Spot是一只棕色的狗 斑点有棕色的头发 斑点的头发是棕色的 查找字符串中 Spot brown 和 hair 总数的最佳方法是什么 在示例中 它将返回 8 我正在寻找类似的东西string c
  • 为什么 dataclasses.astuple 返回类属性的深层副本?

    在下面的代码中astuple函数正在执行数据类的类属性的深层复制 为什么它不能产生与函数相同的结果my tuple import copy import dataclasses dataclasses dataclass class Dem
  • 在 Python 中将列表元素作为单独的项目返回

    Stackoverflow 的朋友们大家好 我有一个计算列表的函数 我想单独返回列表的每个元素 如下所示 接收此返回的函数旨在处理未定义数量的参数 def foo my list 1 2 3 4 return 1 2 3 4 列表中的元素数
  • 在 Celery 任务中调用 Google Cloud API 永远不会返回

    我正在尝试拨打外部电话Google Cloud Natural Language API从一个内Celery任务 使用google cloud python包裹 问题是对 API 的调用永远不会返回 挂起 celery task def g
  • 多输出堆叠回归器

    一次性问题 我正在尝试构建一个多输入堆叠回归器 添加到 sklearn 0 22 据我了解 我必须结合StackingRegressor and MultiOutputRegressor 经过多次尝试 这似乎是正确的顺序 import nu
  • 嵌套列表的重叠会产生不必要的间隙

    我有一个包含三个列表的嵌套 这些列表由 for 循环填充 并且填充由 if 条件控制 第一次迭代后 它可能类似于以下示例 a 1 2 0 0 0 0 0 0 4 5 0 0 0 0 0 0 6 7 根据条件 它们不重叠 在第二次迭代之后 新
  • Tensorboard SyntaxError:语法无效

    当我尝试制作张量板时 出现语法错误 尽管开源代码我还是无法理解 我尝试搜索张量板的代码 但不清楚 即使我不擅长Python 我这样写路径C Users jh902 Documents logs因为我正在使用 Windows 10 但我不确定
  • 矩形函数的数值傅里叶变换

    本文的目的是通过一个众所周知的分析傅里叶变换示例来正确理解 Python 或 Matlab 上的数值傅里叶变换 为此 我选择矩形函数 这里报告了它的解析表达式及其傅立叶变换https en wikipedia org wiki Rectan
  • 从 Powershell 脚本安装 Python

    当以管理员身份从 PowerShell 命令行运行以下命令时 可以在 Windows 11 上成功安装 Python c temp python 3 11 4 amd64 exe quiet InstallAllUsers 0 Instal
  • 使用 Python Oauthlib 通过服务帐户验证 Google API

    我不想使用适用于 Python 的 Google API 客户端库 但仍想使用 Python 访问 Google APIOauthlib https github com idan oauthlib 创建服务帐户后谷歌开发者控制台 http
  • pandas - 包含时间序列数据的堆积条形图

    我正在尝试使用时间序列数据在 pandas 中创建堆积条形图 DATE TYPE VOL 0 2010 01 01 Heavy 932 612903 1 2010 01 01 Light 370 612903 2 2010 01 01 Me
  • Django REST Framework - CurrentUserDefault 使用

    我正在尝试使用CurrentUserDefault一个序列化器的类 user serializers HiddenField default serializers CurrentUserDefault 文档说 为了使用它 请求 必须作为
  • Python GTK+ 画布

    我目前正在通过 PyGobject 学习 GTK 需要画布之类的东西 我已经搜索了文档 发现两个小部件似乎可以完成这项工作 GtkDrawingArea 和 GtkLayout 我需要一些基本函数 如 fillrect 或 drawline
  • 如何使用 Python 3 检查目录是否包含文件

    我到处寻找这个答案但找不到 我正在尝试编写一个脚本来搜索特定的子文件夹 然后检查它是否包含任何文件 如果包含 则写出该文件夹的路径 我已经弄清楚了子文件夹搜索部分 但检查文件却难倒了我 我发现了有关如何检查文件夹是否为空的多个建议 并且我尝
  • 带有 LSTM 的 GridSearchCV/RandomizedSearchCV

    我一直在尝试通过 RandomizedSearchCV 调整 LSTM 的超参数 我的代码如下 X train X train reshape X train shape 0 1 X train shape 1 X test X test
  • 重新分配唯一值 - pandas DataFrame

    我在尝试着assign unique值在pandas df给特定的个人 For the df below Area and Place 会一起弥补unique不同的价值观jobs 这些值将分配给个人 总体目标是使用尽可能少的个人 诀窍在于这
  • 如何将Python3设置为Mac上的默认Python版本?

    有没有办法将 Python 3 8 3 设置为 macOS Catalina 版本 10 15 2 上的默认 Python 版本 我已经完成的步骤 看看它安装在哪里 ls l usr local bin python 我得到的输出是这样的

随机推荐

  • Objective-C 中无延迟播放音效

    我想在人们按下我的应用程序中的某些按钮时播放一些简单的声音效果 并且我尝试了几种方法 但我总是遇到延迟 使声音看起来不同步 我已按照教程进行操作here 所以我尝试了音频服务中的构建 但是有延迟 并且我尝试了 AVAudioPlayer 但
  • 如何注册Windows Phone 8?什么是 Windows Phone IP Over USB 传输 (IpOverUsbSvc)?

    我有一台 Windows Phone 8 正在尝试使用开发者帐户注册它 我使用的是Visual studio 2012附带的工具 Windows Phone开发者注册 但是当我尝试注册时 我收到一条消息 对于 Windows Phone8
  • Java - 正斜杠转义字符

    谁能告诉我如何在 Java 中使用正斜杠转义字符 我知道反斜杠是 但我尝试过 和 但没有成功 这是我的代码 public boolean checkDate String dateToCheck if dateToCheck matches
  • sizeof(int[1]) 是什么意思?

    我是 Linux 内核的新手 我正在阅读文件ioctl h 在那里我遇到了一个宏 IOC TYPECHECK t 看起来像这样 define IOC TYPECHECK t sizeof t sizeof t 1 sizeof t lt 1
  • 关于 C# 中常量小数字段的令人困惑的警告

    我正在尝试const修改器 同时探索大量的 C 教程 并放置了一堆const像这样的类中的修饰符而不在任何地方实际使用它们 class ConstTesting const decimal somedecimal 1 const int s
  • 无法初始化集群。请检查您的配置中的mapreduce.framework.name和相应的服务器地址-提交job2remoteClustr

    我最近将集群从 Apache Hadoop1 0 升级到 CDH4 4 0 我在另一台机器上有一个 weblogic 服务器 我通过 mapreduce 客户端将作业提交到这个远程集群 我仍然想使用 MR1 而不是 Yarn 我已经根据 C
  • 使用 advapi32.dll:LogonUserA() 模拟远程计算机的本地用户

    我需要能够在远程计算机上运行 RegLoadKey 并且可能我的计算机和远程计算机不在同一域中 如果是的话 下面的代码可以正常工作 我可以模拟在计算机上具有管理员权限的用户 否则 如果我们谈论本地用户 我发现我的计算机上必须有一个具有相同用
  • sliderInput 最大/最小文本标签

    我目前正在开发具有多个滑块输入的仪表板 是否可以用文本替换最大和最小标签 例如 我的 min 1 和 max 10 我想将比例保持在 1 到 10 之间 同时让滑块标签分别显示为 较早 和 较晚 Thanks 遗憾的是 简短的回答是否定的
  • 在 D3.js 中缩放或平移时限制域

    我实现了一个简单的 D3 js 折线图 可以缩放和平移 它基于 Stephen Bannasch 的优秀示例here 我的数据域是 x 维度中的 0 n 如何使用内置缩放行为 即使用鼠标滚轮事件 将缩放和平移限制到此域 我想防止用户在下端平
  • 在 Webview 中打开输入类型文件的相机未打开 Android

    我是安卓新手 我正在创建一个小应用程序来拍照并将其上传到服务器 我正在使用 Webview 和 html 表单来做到这一点 在浏览器 chrome 中相机正在打开 但在 webview 中 单击 选择文件 时不会打开相机 有人知道解决办法吗
  • 分割字符串并返回mssql中最大的

    我需要找到一种方法来获取具有最高versionNumber的数据 这是我的数据库设计 VERSIONNUMBER varchar 15 DOWNLOADPATH varchar 100 假设我有这样的记录 VERSIONNUMBER DOW
  • 如何禁用浏览器上的 F5 刷新?

    最好使用 JavaScript 但也想听听其他方法 这将禁用 F5 但不会禁用实际的刷新功能 document onkeydown function e if e keyCode 116 return false 至少在 Chrome XP
  • opengl创建一个用于读取的深度模板纹理

    我在应用程序中使用延迟渲染 并尝试创建一个包含深度和模板的纹理 glTexImage2D GL TEXTURE 2D 0 GL DEPTH24 STENCIL8 width height 0 GL FLOAT 0 现在 opengl 对于这
  • 带有空格、双引号、管道的批处理文件参数

    我有一个批处理文件 需要传递一个包含管道和空格的参数 由于存在空格 因此在传入参数时需要将双引号附加到参数上 我需要去掉这些双引号并回显参数 通常 使用 可以让我做到这一点 但我认为我传入的特定参数会导致问题 如果我这样做 测试1 bat
  • Pandas 通过行号(不是行索引)和列名称获取单元格值

    data tom 10 nick 15 juli 14 df pd DataFrame data columns Name Age index 7 3 9 display df df iat 0 0 我想返回第一行中的年龄 基本上类似于 d
  • 用 C 写入 CSV 文件 [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我的 C 程序生成此数据 我需要将其放入 CSV 文件中 以便其他程序可以使用它 我怎样
  • Android - 加速下降(粉碎)

    视频为不懂的人讲解 此答案未正确回答 请尝试使用其他解决方案来回答 100 赏金已过时 同样的问题 但更好的解释 这个问题被认为是正确的 但根本不是 我用我的旧设备 ZTE 尝试过 大部分时间都有效 但现在我有一台三星 Galazy A5
  • 异步/等待类构造函数

    目前 我正在尝试使用async await在类构造函数中 这样我就可以定制e mail我正在开发的 Electron 项目的标签 customElements define e mail class extends HTMLElement
  • 应用程序中的最大活动量?安卓

    Android 应用程序中有类似最大活动的东西吗 我想知道 因为我正在考虑创建具有铃声功能的声音应用程序 它将有大约 40 项活动 但只有 1 个会持续运行 是不是太多了 我应该寻找其他方法吗 解释为什么我需要 40 项活动 我有 30 个
  • Python 中的不变性 [重复]

    这个问题在这里已经有答案了 我试图了解 python 中的不变性是如何工作的 由于字符串在 python 中是不可变的 所以我希望每次执行字符串操作时 id 都会改变 但它没有按预期工作 例子 对 t 的最后一次操作不会更改其 id 有什么