Python 四大内置函数全景对比

发布时间:2026/9/29 2:46:28

Python 四大内置函数全景对比
一、核心速查表函数返回类型本质含义是否有值主要用途常见坑点vars(obj)dictobj.__dict__✅ 有值查看/修改对象的实例属性仅限有__dict__的对象dir(obj)list[str]对象的所有属性名❌ 无值探索对象“有什么”不包含值顺序无意义locals()dict当前局部作用域变量表✅ 有值查看当前函数/模块的局部变量函数内修改不一定生效globals()dict当前全局作用域变量表✅ 有值查看/修改全局变量模块级别才是真正的全局二、逐个深度拆解1️⃣vars()——「对象的属性字典」✅ 核心定义vars(obj)obj.__dict__返回对象的可写属性字典✅ 适用对象自定义类的实例类本身模块❌ 不适用对象vars(1)vars(abc)vars([1,2])原因内置类型没有__dict__✅ 经典示例classPerson:def__init__(self,name):self.namename pPerson(Alice)print(vars(p))# {name: Alice}print(p.__dict__)# {name: Alice}⚠️ 重要特性dvars(p)d[age]18print(p.age)# 18原地修改✅返回的是同一个 dict不是拷贝2️⃣dir()——「对象的属性清单」✅ 核心定义返回一个字符串列表列出对象“能访问到的所有属性名”✅ 特点包含实例属性类属性继承的方法魔术方法__xxx__不包含属性值✅ 示例classA:x1deffoo(self):passaA()print(dir(a))# [__class__, __delattr__, ..., foo, x]✅ 调试神器print([xforxindir(obj)ifnotx.startswith(__)])⚠️ 注意dir(int)# 能看到 int 的所有方法vars(int)# ✅ 有类属性vars(1)# ❌ 报错✅dir()永远不报错3️⃣locals()——「当前局部作用域」✅ 核心定义返回当前作用域中所有“局部变量”组成的字典✅ 不同场景的行为① 在模块顶层a1b2print(locals()isglobals())# True② 在函数内部deffoo():x10y20print(locals())foo()# {x: 10, y: 20}⚠️ 超级重要面试高频deffoo():x10locals()[x]99print(x)# 10不会变✅函数中的locals()是只读快照❌ 修改不会影响真实局部变量4️⃣globals()——「当前全局作用域」✅ 核心定义返回当前模块命名空间的字典✅ 特点包含全局变量导入的模块定义的类和函数可写✅ 示例x100defbar():globals()[x]999bar()print(x)# 999 ✅✅ 动态创建全局变量慎用globals()[new_var]123print(new_var)# 123三、四者关系一张图逻辑视角作用域 / 对象 ├── 模块 │ ├── globals() → 模块级变量 │ ├── locals() → 同 globals() │ ├── vars() → 模块.__dict__ │ └── dir() → 模块所有属性 │ ├── 函数 │ ├── globals() → 模块级 │ ├── locals() → 函数局部变量只读 │ └── dir() → 当前作用域可见名字 │ └── 对象 ├── vars(obj) → 实例属性字典 └── dir(obj) → 所有可访问属性名四、一句话记忆法vars 属性字典有值dir 属性名单有名locals 眼前变量局部globals 文件级变量全局五、常见面试 实战问答Q1vars()和dir()哪个更常用✅调试用vars()探索用dir()Q2为什么函数里改locals()没用✅ 因为 CPython 的局部变量是静态槽位不是 dictQ3__slots__为什么不能用vars()✅ 因为__slots__禁用了__dict__Q4globals()能改别人模块吗❌ 不能只能改当前模块六、终极对照示例x1classDemo:y2def__init__(self):self.z3dDemo()print(vars(d))# {z: 3}print(dir(d))# [... y, z]print(locals())# 包含 x, Demo, dprint(globals())# 同 locals()

相关新闻

架构师转型 AI 解决方案架构师:从搭系统到设计“智能系统“

架构师转型 AI 解决方案架构师:从搭系统到设计“智能系统“

2026/9/29 2:44:03

方案汇报会上,我自信满满地展示了一套智能客服系统的架构设计。 API 网关 → 业务服务 → 数据库 → 缓存。负载均衡、限流、熔断、监控,该有的都有。🏗️ CTO 看了一眼,点了点头,然后问了几个问题: “大模…

GTC外汇的账户秩序值得长期关注吗?

GTC外汇的账户秩序值得长期关注吗?

2026/8/28 0:33:40

不少用户看GTC外汇时,更在意它是否把基础路径做得清楚,而不是单看表面热度。像核对资料功能页这样的日常动作,最能体现平台有没有把重点信息放在容易看到的位置。把问题拆开去看,平台在基础服务、说明完整度和提醒意识上的表现就更…

当治愈不再是唯一答案——杭州中西医结合医院肿瘤一科探访记

当治愈不再是唯一答案——杭州中西医结合医院肿瘤一科探访记

2026/8/23 0:50:04

走进浙江省中西医结合医院肿瘤血液科病区,这里没有想象中肿瘤病房的沉寂与压抑。走廊里偶有患者缓步而行,护士轻声叮嘱用药事宜。如果你问这里的医生:如果肿瘤无法清除,我们还能做什么?肿瘤一科的答案是——微创介入&a…

CANN/GE ACL数据集缓冲区添加函数

CANN/GE ACL数据集缓冲区添加函数

2026/9/28 4:08:17

aclmdlAddDatasetBuffer 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Te…

用ffmpeg高效批量调整图片尺寸的实战指南

用ffmpeg高效批量调整图片尺寸的实战指南

2026/9/28 16:01:49

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

2026/9/28 2:15:29

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 【免费下载链接】transformers 🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and mu…

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

2026/9/28 3:14:54

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system sup…

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

2026/9/28 3:58:00

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

2026/9/28 3:47:14

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting mi…

远程协作的工作台整理

远程协作的工作台整理

2026/9/28 16:01:48

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/28 5:05:21

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/28 16:01:48

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…