python多态协议鸭子类型分析

技术python多态协议鸭子类型分析本篇内容介绍了“python多态协议鸭子类型分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够

本文介绍了“python多态协议鸭类型分析”的知识。很多人在实际案例的操作中会遇到这样的困难。接下来,让边肖带领大家学习如何应对这些情况!希望大家认真阅读,学点东西!

接口的许多不同实现(python中的协议)被称为多态性。多态性的功能是确保在类继承和派生时正确调用家谱中任何类的实例的属性。

fromabcimportABCMeta,abstractmethod

#鸭子

classDock(元类=ABCMeta):

@抽象方法

defswing(self): #游泳方法协议(接口)

及格

@abstractmethod#行走协议(接口)

defWalk(self):

及格

@classmethod

def__subclasshook__(cls,C):

#确定另一个比较类是否已经实现了SwimmingWalk协议。如果已经实现了duck类的两个协议,

#那么比较类的类型就是鸭子类型。

#代码执行时,如果对象和这个类做isinstance类型判断,就会去这个函数做判断。

甲醛(‘游泳’,’散步’):

forBinC。__mro__:

ifmethodinB。__dict__:

ifB。_ _ dict _ _[方法]isNone:

returnNotImplemented

破裂

else:

returnNotImplemented

返回真

#狗

类狗(对象):

#执行游泳协议

定义游泳(自我):

打印(“狗会凿洞”)

#实施步行协议

defWalk(self):

打印(“狗会走路”)

失败(自我):

印刷体(“狗喜欢吃骨头”)

#海龟

类乌龟(对象):

#执行游泳协议

定义游泳(自我):

打印(海龟可以潜水)

#实施步行协议

defWalk(self):

印刷体(“乌龟会走路”)

失败(自我):

印刷体(“乌龟喜欢吃鱼”)

狗=狗()

乌龟=乌龟()

打印(实例(狗、码头))#真

Print (isinstance(乌龟,Dock)) # True可以看到,在上面的代码中,只要实现了Dock类中的游动和Walk方法,这个类就可以称为Dock类。

应用场景是:for循环。在python中,for循环只能用于可迭代对象。然后,我自己定义的类实现了__iter__协议(接口)。此实例类是一个可迭代对象,可由for循环使用。

python中定义的协议类协议使用了@abstractmethod装饰器,与c中的纯虚函数类相比,@abstractmethod装饰的类无法初始化。

此类只能用作协议(接口)类。

“python多态协议鸭类型分析”的内容到此结束。感谢阅读。如果你想了解更多的行业,可以关注网站。边肖将为您输出更多高质量的实用文章!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/126263.html

(0)

相关推荐

  • 如何在Rust中创建C/C++ API

    技术如何在Rust中创建C/C++ API本篇内容介绍了“如何在Rust中创建C/C++ API”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔

    攻略 2021年11月30日
  • 抖音刷赞推广平台便宜,抖音刷赞全网最低价!

    技术抖音刷赞推广平台便宜,抖音刷赞全网最低价!这里推荐一个非常不错的代刷平台给大家,就是代刷网现在新老客户都有福利,点进网站后,只要收藏网址,每天都可以免费领取抖音播放1000次价格,不敢说是全网价格足最低,但是全网最实

    测评 2021年10月21日
  • 如何用Python爬虫抓取代理IP

    技术如何用Python爬虫抓取代理IP本篇文章为大家展示了如何用Python爬虫抓取代理IP,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。不知道大家在访问网站的时候有没有遇到过这

    攻略 2021年10月28日
  • 鞋子磨脚怎么办,鞋子磨脚咋办,舍不得扔

    技术鞋子磨脚怎么办,鞋子磨脚咋办,舍不得扔时下,是添置新衣新鞋最好的时候,但对于很多人来说,新鞋固然令人喜欢,但却也非常让人“肉疼”,动不动就磨脚的遭遇让许多人对穿新鞋还是有一定的顾忌鞋子磨脚怎么办。即使是价值几百、上千

    生活 2021年10月30日
  • CSP-J 2021 题解

    技术CSP-J 2021 题解 CSP-J 2021 题解蒟蒻の得分
    作为一个学了一年多还只在入门组的高龄 \(OIer\),\(T1\) 居然写挂了……
    \(T1\) 是一道简单的数学题,考场上把问题

    礼包 2021年10月26日
  • 手工纸灯笼制作,幼儿园手工制作灯笼需要什么材

    技术手工纸灯笼制作,幼儿园手工制作灯笼需要什么材准备材料手工纸灯笼制作:一次性纸杯两只,红线若干,剪刀,胶水或双面胶,放焰火剩余的手柄,红色颜料和水粉笔。具体步骤:1.取一只纸杯,尽量选择横竖有参考图案的。沿纵向条纹均匀

    生活 2021年10月30日