# -*- encoding: utf-8 -*-
import functools
import os
from threading import Thread
'''
第24条: 以@classmethod形式的多态去通用地构建对象
关键:
1 python类的多态
多态含义: 继承体系的多个类能以自己的方式实现某个方法。
这些类都满足相同的接口但有不同的功能。
局限: python只能有一个__init__构造方法,可以用@classmethod
来初始化类的实例,等同于实现另一种类的__init__方法
2 classmethod
形式:
@classmethod
def fromData(cls, data):
......
其中第一个参数是cls,表示类的名称,用于后续创建该类的实例
3 类的多态方法举例
@classmethod
def createWorker(cls, inputClass, config):
workers = []
# 关键: inputClass.fromData是类级别的多态方法
for inputData in inputClass.fromData(config):
workers.append(cls(inputData))
return workers
分析:
这里在一个类中使用了另一个类的某个方法,我们传入的是类名,
而加入这个类有子类,传入不同的子类,实际是执行不同子类
各自的同名方法,单实现不同的功能,即一个接口,多个功能,
这就是python的多态。
4 总结
1)多态是指一个接口,多种实现。
在C++中可以用类似如下形式实现多态:
ParentClass* pointer = new SubClass1();
......
p
Effective Python 读书笔记: 第24条: 以@classmethod形式的多态去通用地构建对象
最新推荐文章于 2022-01-18 08:00:00 发布
本文是《Effective Python》读书笔记的一部分,探讨如何使用@classmethod装饰器来实现多态,并以这种方式通用地创建和初始化Python对象。通过这种方法,可以提升代码的灵活性和可扩展性。
摘要由CSDN通过智能技术生成