# 如何去模拟一个抽象基类 # class CacheBase(): # def get(self, key): # raise NotImplementedError # # def set(self, key, value): # raise NotImplementedError # # # class RedisCache(CacheBase): # def set(self, key, value): # print(111) # # # redis_cache = RedisCache() # redis_cache.set("key", "value") # 如果子类没有重写父类的抽象方法,在初始化的时候就报错 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): # TypeError: Can't instantiate abstract class RedisCache with abstract methods get, set # pass class RedisCache(CacheBase): # TypeError: Can't instantiate abstract class RedisCache with abstract methods get, set def set(self, key, value): pass print(111) def get(self, key): pass redis_cache = RedisCache() redis_cache.set("key", "value")