一篇文章搞懂python的三种魔术方法、私有方法、名称改写下划线设计
前后双下划线__xxx__→ 叫魔术方法Magic Method / 特殊方法像你代码里的__iter__、__next__还有平时见到的__init__、__str__都是这一类。为什么要前后都加双下划线这是Python官方约定的特殊命名格式目的区分普通方法普通方法我们自己写比如get_name()没有双下划线__iter__()这种是Python内置预留名字属于语言本身规定好的钩子函数。意思就是这个方法不是让你手动直接调用而是Python解释器在特定场景自动调用举个对照myiteriter(myclass)# 等价于 myclass.__iter__()next(myiter)# 等价于 myiter.__next__()你写iter()、next()解释器自动去找对应的__iter__、__next__。三种下划线命名一次性分清小白必记①__xxx__前后双下划线魔术方法系统预留名字不要自己随便创建新的__abc__这种名字防止和Python未来新增的内置方法冲突。由解释器自动调用。 例子__init__构造方法、__iter__、__next__、__str__、__len__②_xxx单下划线开头约定私有只是约定俗成告诉其他开发者这是内部变量/方法尽量不要在类外面直接访问。语法上仍然能访问只是一个提示。③__xxx双下划线开头末尾没有下划线名称改写name manglingPython会自动改名用来避免子类重名冲突不是严格私有。classA:def__func(self):pass# 实际变成 _A__func迭代器的例子def__iter__(self):def__next__(self):Python规定想让这个类支持iter()、next()就必须实现名字刚好叫__iter__和__next__的魔术方法。 名字不能随便改写成iter_()或者_iter_()都不行解释器识别不到。一句话总结前后双下划线是Python预留的特殊标记代表这是语言内置钩子函数由解释器自动调用不是普通自定义方法。要不要我给你列一份最常用的魔术方法清单附带触发场景

相关新闻

Instant App Teams 团队协作指南:角色权限模型与成员邀请全流程解析

Instant App Teams 团队协作指南:角色权限模型与成员邀请全流程解析

后端数据库 【免费下载链接】instant Instant is the best backend for AI-coded apps. You get auth, permissions, storage, presence, and streams — everything you need to ship apps your users will love. 项目地址: https://gitcode.com/gh_mirrors/inst/i…

2026/9/24 17:34:36 阅读更多 →
qml性能优化-信号槽

qml性能优化-信号槽

目录信号槽性能隐患1对多问题点解决问题耗时操作分段处理多线程处理耗时操作信号槽性能隐患 页面开发中,信号槽连接是必不可少的 如果我们不严谨的使用,槽函数执行耗时太长 就会产生页面卡顿,掉帧,长时间无响应等严重问题 建议是…

2026/9/24 17:34:36 阅读更多 →
基于SpringBoot+Vue的乡村服务管理平台设计与实现

基于SpringBoot+Vue的乡村服务管理平台设计与实现

选题背景与意义随着我国乡村振兴战略的深入推进,农村地区在基础设施建设、公共服务供给以及社会治理能力等方面取得了显著成效。然而,相较于城市地区,广大乡村在信息化水平、管理效率和服务质量方面仍存在明显差距。传统乡村管理模式多依赖人…

2026/9/24 17:33:36 阅读更多 →

最新新闻

react-vis BarSeries 完全指南:用 VerticalBarSeries / HorizontalBarSeries 构建柱状图与堆叠柱状图

react-vis BarSeries 完全指南:用 VerticalBarSeries / HorizontalBarSeries 构建柱状图与堆叠柱状图

数据可视化图表库前端 【免费下载链接】react-vis Data Visualization Components 项目地址: https://gitcode.com/gh_mirrors/re/react-vis 点击查看 免费下载 导读 Bar Series(柱状系列)是 react-vis 中用于绘制矩形柱体的核心系列组件&a…

2026/9/25 2:05:54 阅读更多 →
Apache Beam 社区指标同步:基于 GitHub GraphQL API 的 PR/Issue 数据采集与 PostgreSQL 落地实践

Apache Beam 社区指标同步:基于 GitHub GraphQL API 的 PR/Issue 数据采集与 PostgreSQL 落地实践

大数据批处理流处理数据工程 【免费下载链接】beam Apache Beam is a unified programming model for Batch and Streaming data processing. 项目地址: https://gitcode.com/gh_mirrors/beam4/beam 点击查看 免费下载 本文以 Apache Beam 仓库中 .test-infra/metr…

2026/9/25 2:05:54 阅读更多 →
Miller 压缩数据处理实战:GZIP/BZIP2/ZLIB/ZSTD 输入自动检测、`--prepipe` 外部解压与压缩输出完全指南

Miller 压缩数据处理实战:GZIP/BZIP2/ZLIB/ZSTD 输入自动检测、`--prepipe` 外部解压与压缩输出完全指南

CLI数据分析 【免费下载链接】miller Miller is like awk, sed, cut, join, and sort for name-indexed data such as CSV, TSV, and tabular JSON 项目地址: https://gitcode.com/gh_mirrors/mi/miller 点击查看 免费下载 本篇技术指南以 Miller 官方文档 referen…

2026/9/25 2:05:54 阅读更多 →
Godot-MCP 代码实现解析:execute_editor_script 如何动态执行任意 GDScript

Godot-MCP 代码实现解析:execute_editor_script 如何动态执行任意 GDScript

Godot-MCP 代码实现解析:execute_editor_script 如何动态执行任意 GDScript 【免费下载链接】Godot-MCP An MCP for Godot that lets you create and edit games in the Godot game engine with tools like Claude 项目地址: https://gitcode.com/gh_mirrors/god/…

2026/9/25 2:05:54 阅读更多 →
MCP 模型上下文协议是什么?ai-agents-from-zero 详解其与 Function Calling 的差异及本地 Server 实战

MCP 模型上下文协议是什么?ai-agents-from-zero 详解其与 Function Calling 的差异及本地 Server 实战

MCP 模型上下文协议是什么?ai-agents-from-zero 详解其与 Function Calling 的差异及本地 Server 实战 【免费下载链接】ai-agents-from-zero 🚀 2026 最系统的 AI Agent 速成指南|智能体实战教程 完整学习路径 实战项目 面试题库 对标大…

2026/9/25 2:05:54 阅读更多 →
Buck电路误差放大器选型:普通运放与跨导运放(OTA)的环路补偿对比

Buck电路误差放大器选型:普通运放与跨导运放(OTA)的环路补偿对比

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

2026/9/25 2:04:53 阅读更多 →

日新闻

AI元人文:从工具使用到思维重构的深度探索

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:00:41 阅读更多 →
Python+CNN车牌识别实战:从数据预处理到模型训练与部署

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:00:41 阅读更多 →
Vim基础操作全攻略:保存退出、模式切换与高频命令实战

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/25 0:00:41 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

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

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

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

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

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

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

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →