news 2026/5/14 12:03:15

python变量详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python变量详解

好,这一题是Python 入门到进阶都绕不开的核心
我会按“是什么 → 怎么用 → 底层原理 → 易错点 → 面试/实战总结”给你一篇真正把变量讲透的说明。


Python 变量详解


一、Python 中的变量是什么?

一句话定义:

Python 变量本质上是“对象的引用”,而不是装数据的盒子。

a=10

含义是:

  • 创建一个整数对象10
  • 变量a指向(引用)这个对象

二、变量的创建与赋值

1️⃣ 基本赋值

x=5name="Alice"

📌Python 不需要声明类型


2️⃣ 动态类型特性

a=10a="hello"
  • 合法
  • 变量类型随对象改变

3️⃣ 多重赋值

a=b=c=0

⚠️ 注意:都指向同一个对象


4️⃣ 解包赋值(非常常用)

x,y=1,2a,b=b,a# 交换变量

三、变量命名规则

合法规则

  • 字母、数字、下划线
  • 不能以数字开头
  • 区分大小写
  • 不能使用关键字
importkeyword keyword.kwlist

命名规范(PEP 8)

  • 变量 / 函数:snake_case
  • 常量:UPPER_CASE
total_score=90MAX_SIZE=100

四、变量与对象的关系(重点)

1️⃣ 查看对象身份

a=10b=aid(a)==id(b)# True

👉ab指向同一个对象


2️⃣ 可变对象 vs 不可变对象

不可变对象
  • int
  • float
  • str
  • tuple
a=10a+=1# 新对象

可变对象
  • list
  • dict
  • set
lst=[1,2]lst.append(3)# 原对象修改

五、变量修改的本质差异(高频坑)

示例对比

a=10b=a a+=1
  • a指向新对象11
  • b仍指向10
lst1=[1,2]lst2=lst1 lst1.append(3)
  • lst1lst2都变了

六、作用域(Scope)

1️⃣ LEGB 规则

查找顺序:

Local → Enclosing → Global → Built-in

2️⃣ global / nonlocal

x=10deffunc():globalx x=20
defouter():x=10definner():nonlocalx x=20

七、变量删除

a=10dela
  • 删除的是引用
  • 对象是否销毁由 GC 决定

八、浅拷贝 vs 深拷贝(变量相关)

importcopy copy.copy(obj)# 浅拷贝copy.deepcopy(obj)# 深拷贝

📌 与“可变对象引用”强相关


九、常见误区总结(非常重要)

❌ 1. Python 变量是盒子

错,是引用

❌ 2. = 是拷贝

错,是绑定

❌ 3. 函数参数是引用传递

准确说法:对象引用传递(call by object reference)


十、面试一句话总结

Python 变量本质是对象引用,赋值只是绑定关系的改变,不可变对象会产生新对象,而可变对象在原地修改。


十一、速记口诀

名不存值,名指对象;
可变改自身,不可变换新家。


如果你愿意,我可以下一步直接带你:

你是Python 新手,还是准备面试 / 写工程

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/12 13:45:42

大模型四大支柱RAG/Skill/Memory/Workflow实战指南:从概念混淆到产业落地

文章澄清了大模型应用四大核心支柱RAG、Skill、Memory、Workflow的本质与关系,破除行业常见认知误区。强调产业落地应回归工程本质,简单通用方案优于复杂技术。RAG作为统一召回底座不可替代,Skill做语义连接封装,Memory实现动态个…

作者头像 李华
网站建设 2026/5/9 21:53:08

计算机毕业设计之net基于患者诊疗信息的合理用血知识库的建设与应用

快速发展的社会中,人们的生活水平都在提高,生活节奏也在逐渐加快。为了节省时间和提高工作效率,越来越多的人选择利用互联网进行线上打理各种事务,然后线上管理系统也就相继涌现。与此同时,人们开始接受方便的生活方式…

作者头像 李华