网易首页 > 网易号 > 正文 申请入驻

Python 的设计哲学P03:协议即秩序

0
分享至

Python 的设计哲学:协议即秩序

The Philosophy of "Protocol is Order"

一、秩序的哲学

在哲学中,秩序是混沌中的结构,是思想得以展开的前提。

没有秩序,存在虽有,但无法形成系统;规则缺失,行动也无从执行。

在 Python 的世界里,秩序并非由硬性类型或等级制度强加,而是通过协议(protocol)自然建立。

协议不是法律条文,而是约定俗成的行为规范:它规定了对象如何互动、如何被使用,却不剥夺对象的自由。

“Python 的秩序,是自由之上的自洽规则。”

二、协议的定义:行为的契约

在 Python 中,协议可以理解为对象约定的行为集合。

它不依赖继承或显式接口,而是由方法与属性的存在与表现定义对象的能力。

例如,可迭代协议(Iterable)规定:对象只要实现了 __iter__ 方法,即可被 for 循环使用。

    print(i)

输出:

2

无需继承任何特定类,只要遵守协议,MyRange 就能融入 Python 的迭代体系。

二、鸭子类型:行为即秩序

Python 的秩序不关心对象的“血统”,只关心对象的“行为”。

If it walks like a duck and quacks like a duck, it’s a duck.

——“如果它走路像鸭子、叫声像鸭子,那它就是鸭子。”

这就是所谓的“鸭子类型”(Duck Typing):

不关心对象属于哪种类型

只关注对象是否实现了期望的行为

make_it_quack(Person())  # I can quack too!

上例中,make_it_quack 不关心对象的类型,只关心它是否遵守了“quack 协议”

这种“行为驱动”的世界观,让 Python 拥有近乎自然语言的表达力。

四、协议的应用:统一接口,松耦合

协议让 Python 保持了松耦合:

函数和类只需依赖对象能做什么,而不依赖对象的具体类型

系统各部分可以自由组合,却保持一致的行为规则

例如,len()、iter()、sorted() 等内置函数都依赖协议,而非继承关系。只要对象实现了对应方法,它就能被使用。

print(len(Countable()))  # 42

这体现了 Python 的秩序:行为契约优先于类型约束。

因此,除了前面讲过可迭代协议,Python 还提供了多个经典协议。

1、算术与比较协议

支持自定义运算行为:

# 输出:Vector(4, 6)

协议让 +、-、==、> 等操作拥有开放的意义。

2、可调用协议

让对象像函数一样被“调用”。

# 输出:Hello, Python!

在 Python 中,“可调用”是一种能力,而非类型。语言不问你是什么,只问你能做什么。

3、上下文管理协议

让对象与 with 语句合作,实现自动资源管理。

    print("正在使用", r)

输出:

离开上下文

Python 的文件对象、数据库连接、线程锁,皆遵循此协议。

四、Python 的协议体系

在 Python 官方的数据模型(Data Model)中,协议是语言的底层秩序。

它们构成了从基础到异步的完整协作系统:

对象基础协议:创建、销毁、属性访问(__init__、__del__、__getattr__)

容器与序列协议:长度、索引、成员检测(__len__、__getitem__、__contains__)

迭代与生成协议:遍历与惰性计算(__iter__、__next__)

上下文管理协议:with 语句与资源释放(__enter__、__exit__)

算术与比较协议:加减乘除与关系运算(__add__、__eq__)

描述符协议:属性控制机制(__get__、__set__)

可调用协议:函数行为模拟(__call__)

异步与协程协议:async / await 机制(__await__、__aenter__、__anext__)

缓冲与路径协议:底层内存与文件路径接口(__buffer__、__fspath__)

这些协议让语言得以扩展而不失秩序,使“行为”成为 Python 世界的核心法则。

五、哲学总结:秩序中的自由

Python 的协议机制展示了秩序与自由的统一:

秩序:对象通过协议规范行为,保证系统的自洽性

自由:对象无需继承特定类,只需遵守协议即可参与系统

“秩序不是束缚,而是自由互动的前提。”

小结

协议(Protocol)是对象约定的行为集合,规定了如何互动而非所属类型。

鸭子类型(Duck Typing)强调行为优先,类型次之。

协议实现了 Python 的松耦合,让系统既自洽又灵活。

“秩序源于约定,自由源于遵守,Python 的协议即秩序,也承载自由。”

点赞有美意,赞赏是鼓励

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
4只皮皮虾1035元,官方回应是否“带客吃回扣”

4只皮皮虾1035元,官方回应是否“带客吃回扣”

中国新闻周刊
2026-05-09 19:38:06
利好曼联!世界级中场亲承加盟,5 年合同接近谈妥

利好曼联!世界级中场亲承加盟,5 年合同接近谈妥

澜归序
2026-05-12 02:35:37
班主任的大实话:初中是孩子变坏最快的三年,务必抓好这7件事!

班主任的大实话:初中是孩子变坏最快的三年,务必抓好这7件事!

户外阿毽
2026-05-10 19:24:03
日本发射88式导弹,彻底炸毁中国最后的耐心!日首相向第三国下跪

日本发射88式导弹,彻底炸毁中国最后的耐心!日首相向第三国下跪

杰丝聊古今
2026-05-10 12:21:17
被马蓉横刀夺爱已过10年,宋喆前妻杨慧,已成为他们高攀不起的人

被马蓉横刀夺爱已过10年,宋喆前妻杨慧,已成为他们高攀不起的人

科学发掘
2026-05-12 02:40:23
圆明园被毁前老照片:老外拍下的珍贵历史,很震撼

圆明园被毁前老照片:老外拍下的珍贵历史,很震撼

年代回忆
2026-05-04 20:02:56
特朗普访华日期正式敲定,资本市场要迎来大变局吗?|商业微史记

特朗普访华日期正式敲定,资本市场要迎来大变局吗?|商业微史记

界面新闻
2026-05-11 14:06:12
一个人性铁律:你和任何人的关系,不取决于你付出多少,也不取决于你的能力,更不取决于你的价值,关键在于这两点

一个人性铁律:你和任何人的关系,不取决于你付出多少,也不取决于你的能力,更不取决于你的价值,关键在于这两点

心理观察局
2026-05-11 09:28:10
未授权、未使用,学位却被锁定?部门:租客使用过期凭证申请

未授权、未使用,学位却被锁定?部门:租客使用过期凭证申请

南方都市报
2026-05-11 18:10:41
退役体操女神与大51岁干爹相恋,二人现状引关注

退役体操女神与大51岁干爹相恋,二人现状引关注

调侃国际观点
2026-05-12 02:06:39
中方不再藏着掖着!国防部公开承认:南亚最强AIP潜艇已移交巴铁

中方不再藏着掖着!国防部公开承认:南亚最强AIP潜艇已移交巴铁

荷兰豆爱健康
2026-05-11 06:35:17
CBA季后赛:四强诞生两席!深圳男篮横扫突围,顶住压力

CBA季后赛:四强诞生两席!深圳男篮横扫突围,顶住压力

慢歌轻步谣
2026-05-12 05:57:11
林志玲被曝日本“拍片”?拍摄片段流出,网友:女神怎么沦落成这样

林志玲被曝日本“拍片”?拍摄片段流出,网友:女神怎么沦落成这样

八卦王者
2026-05-10 13:32:20
恨铁不成钢!《五哈6》王勉一手好牌打稀烂,直接断送游戏看点!

恨铁不成钢!《五哈6》王勉一手好牌打稀烂,直接断送游戏看点!

精彩背后
2026-05-12 00:30:01
与申敏儿10年恋修正果!金宇彬甜曝新婚日常「每天必做这事」

与申敏儿10年恋修正果!金宇彬甜曝新婚日常「每天必做这事」

ETtoday星光云
2026-05-11 12:18:05
全山西被黑的最惨的县城丨山西索马里,吕梁亚丁湾

全山西被黑的最惨的县城丨山西索马里,吕梁亚丁湾

云边有个杂闻铺
2026-05-11 13:48:26
“连穿着体面都做不到”,民办大专宣传片难登大雅之堂,名不虚传

“连穿着体面都做不到”,民办大专宣传片难登大雅之堂,名不虚传

泽泽先生
2026-05-10 09:05:10
首尾大战,央视直播!CCTV5+聚焦津蓉对决,CCTV16播鲁渝交锋

首尾大战,央视直播!CCTV5+聚焦津蓉对决,CCTV16播鲁渝交锋

实事球是
2026-05-11 08:38:25
NBA传闻:沙姆斯透露扬尼斯·阿德托昆博交易去向的“最大因素”

NBA传闻:沙姆斯透露扬尼斯·阿德托昆博交易去向的“最大因素”

好火子
2026-05-12 05:21:44
一顿初中女儿“钙奶饼干”晚餐,惹怒了网友:孩子长不高你骄傲?

一顿初中女儿“钙奶饼干”晚餐,惹怒了网友:孩子长不高你骄傲?

泽泽先生
2026-05-11 11:00:24
2026-05-12 06:28:49
MediaTea
MediaTea
专业的数字媒体、新媒体技术
1826文章数 80关注度
往期回顾 全部

科技要闻

黄仁勋:你们赶上了一代人一次的大机会

头条要闻

间谍引诱国企人员进色情场所 拍艳照要挟对方加入

头条要闻

间谍引诱国企人员进色情场所 拍艳照要挟对方加入

体育要闻

梁靖崑:可能是最后一届了,想让大家记住这个我

娱乐要闻

“孕妇坠崖案”王暖暖称被霸凌协商解约

财经要闻

宗馥莉罢免销售负责人 部分业务将外包

汽车要闻

吉利银河“TT”申报图曝光 电动尾翼+激光雷达

态度原创

教育
健康
房产
公开课
军事航空

教育要闻

有公费海外交换机会的院校(妈妈!免费旷野!

干细胞能让人“返老还童”吗

房产要闻

产业赋能教育!翰林府与北师大的这场签约,绝不那么简单!

公开课

李玫瑾:为什么性格比能力更重要?

军事要闻

特朗普:伊朗的回应“完全不可接受”

无障碍浏览 进入关怀版