Python 四大内置函数全景对比

发布时间:2026/7/9 3:29:35

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/7/9 3:29:35

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

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

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

2026/7/9 3:19:35

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

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

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

2026/7/9 3:19:35

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

DeviceXPlorer OPC Server v7:如何完成IEC60870-5-104接入配置?

DeviceXPlorer OPC Server v7:如何完成IEC60870-5-104接入配置?

2026/7/9 4:49:39

IEC60870-5-104接入配置(DeviceXPlorer OPC Server v7) 一、 使用场景 在IEC104电力系统中,用户常见问题: (1)不同厂商 RTU 对 IEC104 支持存在差异,M_SP / M_DP / M_ME 等 ASDU 类型实现不一致…

如何快速掌握Py Eddy Tracker:海洋涡旋检测的完整指南

如何快速掌握Py Eddy Tracker:海洋涡旋检测的完整指南

2026/7/9 4:49:39

如何快速掌握Py Eddy Tracker:海洋涡旋检测的完整指南 【免费下载链接】py-eddy-tracker Eddy identification and tracking 项目地址: https://gitcode.com/gh_mirrors/py/py-eddy-tracker 想要探索海洋中尺度涡旋的奥秘吗?Py Eddy Tracker是专为…

Paster剪贴板增强工具V1.3.0重磅更新,剪贴板历史、截图标注、离线 OCR/翻译、桌面便签、实用工具箱,一个工具全搞定

Paster剪贴板增强工具V1.3.0重磅更新,剪贴板历史、截图标注、离线 OCR/翻译、桌面便签、实用工具箱,一个工具全搞定

2026/7/9 4:49:39

Paster - 剪贴板增强工具 轻量 高效 隐私安全 完全免费 复制过的内容永不丢失 — 剪贴板历史、截图标注、离线 OCR/翻译、桌面便签、实用工具箱,一个工具全搞定 🚀 v1.3.0 新版发布:卡片交互可配置、悬浮球支持大小调节、截图全面美化&…

PEG-Maleimide蛋白偶联中间体定制

PEG-Maleimide蛋白偶联中间体定制

2026/7/9 4:49:39

PEG-Maleimide蛋白偶联中间体定制|助力抗体偶联、蛋白修饰与生物材料精准构建 随着蛋白药物、抗体偶联药物(ADC)、靶向递送系统以及蛋白功能化材料的快速发展,如何实现蛋白分子的高效、温和、定向修饰成为生物医药研发中的重要环…

Windsurf vs Cursor:从VS Code插件兼容性到私有模型微调支持,一份让CTO连夜召开技术评审会的对比白皮书

Windsurf vs Cursor:从VS Code插件兼容性到私有模型微调支持,一份让CTO连夜召开技术评审会的对比白皮书

2026/7/9 4:49:39

更多请点击: https://kaifayun.com 第一章:Windsurf与Cursor的战略定位与核心价值主张 Windsurf 和 Cursor 并非传统意义上的竞品,而是面向不同开发者心智模型与协作范式的智能编程工具。Windsurf 定位为“AI-native IDE”,其核心…

ChatGPT生成结果总不准?用Claude做交叉校验的5个黄金法则:实测准确率提升67.3%(附可复用Prompt模板)

ChatGPT生成结果总不准?用Claude做交叉校验的5个黄金法则:实测准确率提升67.3%(附可复用Prompt模板)

2026/7/9 4:39:39

更多请点击: https://intelliparadigm.com 第一章:ChatGPT生成结果总不准?用Claude做交叉校验的5个黄金法则:实测准确率提升67.3%(附可复用Prompt模板) 当ChatGPT在技术文档摘要、SQL语句生成或数学推导中…

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南

2026/7/8 0:44:47

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gi…

6个月转型AI工程师:实战路径与核心技能

6个月转型AI工程师:实战路径与核心技能

2026/7/8 6:29:42

1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公…

YOLOv5模型剪枝与量化实战:边缘设备部署优化

YOLOv5模型剪枝与量化实战:边缘设备部署优化

2026/7/8 14:04:34

1. 项目背景与核心价值在计算机视觉领域,YOLOv5因其出色的实时检测性能成为工业界宠儿。但当我们尝试将其部署到边缘设备(如树莓派、Jetson Nano或手机终端)时,立刻会遇到两个致命问题:模型体积庞大(原始YO…

平价正宗重庆火锅实测|理性避坑选型指南

平价正宗重庆火锅实测|理性避坑选型指南

2026/7/9 0:09:12

一、引言:重庆火锅消费现存痛点当下大众平价川渝火锅赛道竞争白热化,普通消费者就餐普遍面临三大选型难题:一是口味同质化严重,大量门店采用预制锅底、半成品食材,打着重庆老火锅旗号弱化牛油本味,麻辣口感…

AcFunDown:打破A站视频离线观看壁垒的终极解决方案

AcFunDown:打破A站视频离线观看壁垒的终极解决方案

2026/7/9 0:09:12

AcFunDown:打破A站视频离线观看壁垒的终极解决方案 【免费下载链接】AcFunDown 包含PC端UI界面的A站 视频下载器。支持收藏夹、UP主视频批量下载 😳仅供交流学习使用喔 项目地址: https://gitcode.com/gh_mirrors/ac/AcFunDown 想象一下这样的场景…

【复现】面向新能源消纳能力评估的年负荷序列建模及场景生成方法(Matlab代码实现)

【复现】面向新能源消纳能力评估的年负荷序列建模及场景生成方法(Matlab代码实现)

2026/7/9 0:09:12

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 &#x1f381…