美文网首页
4-2 抽象基类

4-2 抽象基类

作者: 正在努力ing | 来源:发表于2018-08-26 15:48 被阅读0次

相当于Java的接口,
Java的类实现特性时,是要实现接口
Python鸭子类型:
Python去实现一个类的特性时,是不需要继承父类的,去看一个类有什么特性,只要看内部的魔法函数实现

我们希望某些子类必须实现某些方法

这份时候就可以用抽象基类

判断某个对象的类型

import abc

class cache(metaclass=abc.ABCMeta):
    @abc.abstractmethod
    def get(self,key):
        pass

    @abc.abstractmethod
    def set(self,key,value):
        pass

class Redis_cache(cache):
    # def get(self,key):
    #     pass

    # def set(self,key,value):
    #     pass
    pass

redie = Redis_cache()
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-1-2a1ab74f1e18> in <module>()
     18     pass
     19 
---> 20 redie = Redis_cache()


TypeError: Can't instantiate abstract class Redis_cache with abstract methods get, set
class Redis_cache2(cache):
    def get(self,key):
        pass

    def set(self,key,value):
        print("success")

redis2 = Redis_cache2()
redis2.set(1,2)
success

此时的Redis_cache没有实现抽象类的get,set方法,所以报错,提示要去实现
此时的Redis_cache2实现了抽象类的get,set方法,所以能够正常运行

from collections.abc import Sized
isinstance(redis2,Sized)
False

相关文章

  • 4-2 抽象基类

    相当于Java的接口,Java的类实现特性时,是要实现接口Python鸭子类型:Python去实现一个类的特性时,...

  • Java IO流(二)

    IO流常用基类 字节流的抽象基类:InputStreamOutputStream字符流的抽象基类: ReaderW...

  • python术语相关

    abstract base class -- 抽象基类 抽象基类简称ABC annotation -- 注解 关联...

  • 深入理解 Python 类和对象(2) - 抽象基类

    抽象基类,即 Python 中的 abc 模块,Abstract Base Class。 Python 抽象基类可...

  • 2021-10-22

    PEP 3119 -- 引入抽象基类PEP: 3119Title: 引入抽象基类Author: Guido...

  • LockSupport.park(...)

    AQS是java.conccurent包下诸多工具类的抽象基类,借以AQS抽象基类,实现如lock,unlock,...

  • ★01.基础概念

    抽象类:含有虚函数的类。 抽象基类:含有纯虚函数的类。 虚基类:多重继承中虚继承的基类。 类静态数据成员的定义必须...

  • 二十七、自定义补间动画

    Android提供了 Animation作为补间动画抽象基类,而且为该抽象基类提供了AlphaAnimation ...

  • iOS 工厂模式(抽象工厂)

    抽象工厂管理类 抽象工厂类 苹果工厂 谷歌工厂 手机基类 苹果手机 安卓手机 手表基类 苹果手表 安卓手表 使用

  • python之抽象基类

    python之抽象基类 抽象基类,在这个类中定义一些方法,所有继承这个类的类必须实现这个方法,并且这个类不能被实例...

网友评论

      本文标题:4-2 抽象基类

      本文链接:https://www.haomeiwen.com/subject/ppyoiftx.html