Skip to Content
流畅的Python(第2版)
book

流畅的Python(第2版)

by Luciano Ramalho
April 2023
Intermediate to advanced
769 pages
25h 16m
Chinese
Posts & Telecom Press
Content preview from 流畅的Python(第2版)
332
13
接口、协议和抽象基类
对接口编程,而不是对实现编程。
——
Gamma
Helm
Johnson
Vlissides
面向对象设计第一原则
1
面向对象编程全靠接口。如
8.4
节所述,在
Python
中,支撑一个类型的是它提供的方法,
也就是接口。
在不同的编程语言中,接口的定义和使用方式不尽相同。从
Python 3.8
开始,有
4
种方式,
如图
13-1
中的
类型图
所示。这
4
种方式概述如下。
鸭子类型
Python
诞生以来默认使用的类型实现方式。从第
1
章开始,本书一直在研究鸭子类型。
大鹅类型
Python 2.6
开始
,由抽象基类支持的方式,该方式会在运行时检查对象是否符合抽象
基类的要求。大鹅类型是本章的主要话题。
静态类型
C
Java
等传
统静态类型语言采用的方式。自
Python 3.5
开始,由
typing
模块支持,
由符合“
PEP
484
Type Hints
”要求的外部类型检查工具实施检查。本章不涉及该方
式。第
8
章的大多数内容和第
15
章讨论了静态类型。
静态鸭子类型
Go
言而流行的方式。由
typing.Protocol
Python 3.8
新增)的子类支持,由外部
类型检查工具实施检查。静态鸭子类型首次出现在
8.5.10
节。
1
出自《设计模式》“引言”部分。
接口、协议和抽象基类
333 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Python高级编程(第2版)

Python高级编程(第2版)

Posts & Telecom Press, Michał Jaworski, Tarek Ziadé
Python贝叶斯分析(第2版)

Python贝叶斯分析(第2版)

Posts & Telecom Press, Osvaldo Martin
高效能PYTHON程式設計

高效能PYTHON程式設計

Micha Gorelick, Ian Ozsvald

Publisher Resources

ISBN: 9787115612366