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版)
384
14
14.5
 混入类
混入类在多重继承中会连同其他类一起被子类化。混入类不能作为具体类的唯一基类,因
为混入类不为具体对象提供全部功能,而是增加或定制子类或同级类的行为。
Python
C++
中,混入类只是一种约定,语言层面没有显式支持。
Ruby
支持显式定义用于混入的模块,即可以引入的为类增加功能的方法集合。
C#
PHP
Rust
实现的性状(
trait
)也是一种显式混入。
下面举一个简单而实用的混入类示例。
不区分大小写的映射
示例
14-8
中定义的
UpperCaseMixin
类在增加或查询键时会把字符串键转换成大写形式,
实现一种键不区分大小写的映射。
示例
14-8
uppermixin.py
UpperCaseMixin
类支持不区分大小写的映射
import collections
def _upper(key):
try:
return key.upper()
except AttributeError:
return key
class UpperCaseMixin:
def __setitem__(self, key, item):
super().__setitem__(_upper(key), item)
def __getitem__(self, key):
return super().__getitem__(_upper(key))
def get(self, key, default=None):
return super().get(_upper(key), ...
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.
Start your free trial

You might also like

Python高级编程(第2版)

Python高级编程(第2版)

Posts & Telecom Press, Michał Jaworski, Tarek Ziadé
Kafka权威指南(第2版)

Kafka权威指南(第2版)

Gwen Shapira, Todd Palino, Rajini Sivaram, Krit Petty
Python贝叶斯分析(第2版)

Python贝叶斯分析(第2版)

Posts & Telecom Press, Osvaldo Martin

Publisher Resources

ISBN: 9787115612366