抽象基类(abc模块)
# 抽象基类(abc模块)
# 抽象基类(abstract base class.ABC): 抽象基类就是类里定义了纯虚成员函数的类
# 纯虚函数只是提供了接口,并没有具体实现,抽象基类不能被实例化(不能创建对象)
# 通常是作为基类供子类继承,子类中重写虚函数,实现具体的接口。
# 抽象基类就是定义各种方法而不做具体实现有类,任何继承自抽象基类
# 应用场景
# 1. 判断某个对象的类型
# 2. 我们需要强制某个子类必须实现某些方法
# 使用isinstance 和 type的区别
class Demo(object):
def __init__(self, names):
self.names = names
def __len__(self): # Sized 有__len__方法 返回True
return len(self.names)
def __iter__(self): # 查看原代码可以找到Iterable有__iter__方法 返回True
pass
def test(self):
pass
d = Demo(['ellen', 'python'])
print(len(d))
print(hasattr(d, 'test')) # 判断是否有这个方法
from collections.abc import Sized,Iterable
print(isinstance('demo', int)) # 判断类型 判断实例
print