变量赋值时的引用传递
在Python语言中,对象是通过引用传递的。在赋值时,不管这个对象是新创建的,还是一个已经存在的,都是将该对象的引用(并不是值)赋值给变量。
要保持追踪内存中的对象,Python使用了引用计数这一简单技术。也就是说Python内部记录着所有使用中的对象各有多少引用。一个内部跟踪变量,称为一个引用计数器。每个对象各有多少个引用,简称引用计数。当对象被创建时,就创建了一个引用计数,当这个对象不再需要时,也就是说,这个对象的引用计数变为0时,它被垃圾回收。
当对象被创建并(将其引用)赋值给变量时,该对象的引用计数就被设置为1。当同一个对象(的引用)又被赋值给其他变量时,或作为参数传递给函数、方法或类实例时,或者被赋值为一个窗口对象的成员时,该对象的一个新的引用,或者称作别名,就被创建(则该对象的引用计数自动加1)。
当对象的引用被销毁时,引用计数会减少。最明显的例子就是当引用离开其作用范围时,这种情况最经常出现在函数运行结束时,所有局部变量都被自动销毁,对象的引用计数也就随之减少。当变量被赋值给另外一个对象时,原对象的引用计数也会自动减1。其他造成对象的引用计数减少的方式包括使用del语句删除一个变量,或者当一个对象被移出一个窗口对象时(或该容器对象本身的引用计数变成了0时)。
在上面的例子中,a = 1使变量a指向了整型对象1,b = a使变量b也指向了整型对象1,通过语句id(a), id(b)可以看到变量a和变量b所指向的内存地址相同。语句a = 2将新的对象2赋值给了变量a,此时变量a指向了对象2,变量b仍然指向原来的对象1。通过语句id(a), id(b)可以看到变量a与变量b所指向的内存地址不同。
以上就是python怎么用引用来改变一个变量的详细内容,更多请关注昆居客【www.kunjuke.com】。
无法联网检索,未见“已联网”标签,需点击输入框左上角地球图标启用联网功能后重试。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜ 你需要确认一份千页行业报告里引用的“2025年Q4全国新能源汽车销量同比增长38.2%”是否真实存在、出自哪份原始文件、发布时间是否准确,而不是盲目采信原文标注的“据乘联会数据”。 先让Kimi联网,再让它查源头 ...
2026-05-28 · 前沿科技 · 28034
做适合AI引用的教程需聚焦五要素:主体动作、触发位置、参数选择、约束条件、预期输出;嵌入动词/空间/数值锚点;区分AI自动执行与人工补位环节;附失败信号及修正方案。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜ 做适合AI引用的教程内容,关键不是堆砌步骤,而是让AI能准确识别任务目标、理解操作边界、并稳定复现结果。Canva可画本身不提供“...
在前一节《Excel VBA 基础》中,我们已初步了解了部分核心概念与基本操作。部分教程中曾出现具体 VBA 代码示例,你或许尚未完全理解其含义——这完全不必担心。从本章《VBA 变量、类型和运算符》起,我们将系统学习 VBA 的语法体系,正式迈入真实的编程实践阶段,助你编写出真正具备实用价值的代码。 本节聚焦于 VBA 编程中最基础也最关键的元素:VBA 变量。 所谓变量,是 VBA 中用于临时...
2026-05-25 · 软件教程 · 36933
Canva不提供“AI引用概率”指标,所谓“引用概率”实为内容被平台推荐、复用或入选模板库的曝光机会;提升关键在于匹配平台偏好:采用五维提示词结构、生成高频场景标准化内容、加入可复用视觉锚点、配合AI模板机制强化风格标签。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜ Canva可画本身不提供“AI引用概率”这一指标,也没有公开的“引用率”...
Figma AI生成稿中颜色未绑定Color Variables是因为其默认输出静态HEX值。需手动通过四步操作完成绑定:一、在Local Variables中创建对应Color变量;二、逐图层在Fill中切换为Variables引用;三、用Selection Colors批量选中相同HEX图层后统一替换;四、用Find and Replace全局搜索HEX并替换为Color variable。 ...
2026-05-12 · 前沿科技 · 304349
Figma中Variables需通过Collection实现自动化分组与语义管理:一、创建Tokens/Core、Theme、State三个Collection;二、用color/primary/500等斜杠命名自动归类;三、用Tag跨Collection筛选;四、用Tokens Sync插件批量校验同步;五、按Collection导出独立JSON Schema文件。 ☞☞☞AI 智能聊天, 问答...
pytest.mark 必须作为装饰器直接作用于测试函数或类,不可写在函数外部;可叠加多个标记,执行时用 -m "mark1 and mark2" 等布尔表达式筛选;未注册标记会触发警告,需在 pytest.ini 或 pyproject.toml 中声明以避免。 pytest.mark 能不能直接用在函数外面 不能。所有 pytest.mark 必须装饰在测试函数或类上,写在函数定义之外会报 S...
yield from 在树遍历中省去了手动展开子生成器的繁琐与风险,自动处理委托调用、异常传播、StopIteration 捕获及协程方法转发,确保扁平化输出和行为一致性。 yield from 在树遍历中到底省了什么 直接说结论:yield from 不是语法糖,它把递归生成器的“委托调用”从手动循环 + yield 拆解成一条语句,避免了中间迭代器被提前耗尽、异常传播断裂、或 StopIter...