尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

一篇文章搞懂python的三种魔术方法、私有方法、名称改写下划线设计

发布时间:2026/9/26 19:00:21

资讯中心
01
ARTICLE

一篇文章搞懂python的三种魔术方法、私有方法、名称改写下划线设计

一篇文章搞懂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预留的特殊标记代表这是语言内置钩子函数由解释器自动调用不是普通自定义方法。要不要我给你列一份最常用的魔术方法清单附带触发场景
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。