抽象基类
抽象基类, 在类中设定好方法,且所有继承这个类都需要重写这些方法,抽象基类不能被实例化,个人感觉就是定义框架规则,让用户自定义实现,但是给了整体的架构
代码
class Duck:
def say(self):
print("duck saying 嘎.")
# hasattr(Duck(), "say") 判断类中是否有x的方法/属性
print(hasattr(Duck(), "say"))
# 判断对象的类型
print(isinstance(Duck(), Duck))
import abc
# 定义一个抽象类
class CacheBase(metaclass=abc.ABCMeta):
# 定义抽象方法
@abc.abstractmethod
def get(self, key):
pass
@abc.abstractmethod
def set(self, key, value):
pass
class RedisCache(CacheBase):
"""必须实现get/set方法"""
# TypeError: Can't instantiate abstract class RedisCache with abstract methods get, set
pass
rc = RedisCache()