勐海县住房和城乡建设局网站内蒙古工程建设网站

pingmian/2026/1/25 0:27:06/文章来源:
勐海县住房和城乡建设局网站,内蒙古工程建设网站,wordpress产品展示页面,南昌购物网站开发一. 前言 Python中的抽象类、多态和鸭子类型都是实现代码灵活性的机制#xff0c;但它们之间还是有一些区别的。 二. 三者的区别 抽象类#xff1a; 要求子类必须实现某些方法#xff0c;从而规范了子类的实现方式。多态#xff1a; 同一个方法可以针对不同类型的对象进…一. 前言 Python中的抽象类、多态和鸭子类型都是实现代码灵活性的机制但它们之间还是有一些区别的。 二. 三者的区别 抽象类 要求子类必须实现某些方法从而规范了子类的实现方式。多态 同一个方法可以针对不同类型的对象进行不同的实现提高了代码的灵活性。鸭子类型 不关心对象的类型只关心对象是否具有某些特定的方法或属性。 三. 概念及示例代码 1. 多态 1.1 多态的三种表现形式 继承抽象类 耦合度极高程序的可扩展性极低 继承父类 耦合度高程序的可扩展性低 鸭子类型 耦合度低程序的可扩展性高 1.2 多态的目的 为了在不知道对象具体类型的情况下统一对象调用方法的规范名字 父类: 定制一套统一的规范。比如: 方法名统一 子类: 遵循父类的统一的规范。比如: 子类遵循父类方法名的统一 1.3 多态的好处 增加了程序的灵活性 以不变应万变不论对象千变万化使用者都是同一种形式去调用如func(people1)增加了程序的可扩展性 通过继承animal类创建了一个新的类使用者无需更改自己的代码还是用func(people1)去调用 1.4 多态示例代码 class People(Animal): #属于动物的另外一种形态人def speak(self):print(say hi)def func(people): #对于使用者来说自己的代码根本无需改动people.speak()people1People() #实例出一个人func(people1) #甚至连调用方式也无需改变就能调用人的talk功能这样我们新增了一个形态People由People类产生的实例people1使用者可以在完全不需要修改自己代码的情况下,使用和猫、狗、猪一样的方式调用people1的speak方法即func(people1)示例代码二 class Shape:def area(self):passclass Square(Shape):def __init__(self, side):self.side sidedef area(self):return self.side ** 2class Circle(Shape):def __init__(self, radius):self.radius radiusdef area(self):return 3.14 * self.radius ** 2def print_area(shape):print(shape.area())s Square(5) c Circle(3)print_area(s) # 25 print_area(c) # 28.26 在上述代码中Shape类是一个基类定义了一个方法area()。Square和Circle类继承了Shape类并分别实现了自己的area()方法。print_area()函数接受一个Shape类型的参数不同类型的Shape对象会产生不同的行为实现了多态。 2. 抽象类 2.1 什么是抽象类 在python内置的abc模块中有一个抽象类让子类必须遵循父类的编写规范。 2.2 如何实现抽象类 父类需要继承abc模块中的metaclassabc.ABCMeta在父类的方法中需要装饰上 abc.abstractmethod 注意: 在python中不推荐使用抽象类。 子类必须按照父类的方法编写规范缺一不可。只要父类中有几个抽象方法子类就必须要定义几个可以多但不能少 2.3 抽象类示例代码 from abc import ABC, abstractmethodclass Shape(ABC):abstractmethoddef area(self):passclass Square(Shape):def __init__(self, side):self.side sidedef area(self):return self.side ** 2class Circle(Shape):def __init__(self, radius):self.radius radiusdef area(self):return 3.14 * self.radius ** 2# 不能实例化Shape # s Shape()sq Square(5) c Circle(3)print(sq.area()) # 25 print(c.area()) # 28.26在上述代码中Shape类是一个抽象类定义了一个抽象方法area()。Square和Circle类继承了Shape类并分别实现了自己的area()方法。由于Shape是抽象类不能直接实例化只能通过子类进行实例化。 3. 鸭子类型 3.1 什么是鸭子类型 python崇尚鸭子类型,不同的对象只要长得像鸭子动作行为像鸭子那它就是鸭子。鸭子类型是多态的一种表现形式。 3.2 为什么要有鸭子类型 不同对象先抽象出相同类型的方法给他们定制一套统一的规范。所有的类在定义时都按照统一的规范进行编写。 3.3 鸭子类型示例代码 class Duck:def quack(self):print(Quack)class Person:def quack(self):print(Im quacking like a duck)def duck_test(obj):obj.quack()d Duck() p Person()duck_test(d) # Quack duck_test(p) # Im quacking like a duck在上述代码中Duck和Person类都有一个quack()方法duck_test()函数接受一个对象参数只要该对象有quack()方法即可不关心其具体类型实现了鸭子类型。 四. 总结 抽象类是一种特殊的类不能被实例化。它的作用是规范子类的行为。多态是一种基于继承的特性同一个方法可以针对不同类型的对象进行不同的实现。鸭子类型是一种动态类型机制关注对象的行为而不关注其类型只要一个对象实现了特定的接口就可以被当做该接口的实现对象。 以上就是关于Python -【多态抽象类鸭子类型】的区别及使用介绍希望对你有所帮助

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/86022.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

哪里教做网站的东莞微信网站制作

很久没用sql server了,这几天打算更新SQL SERVER数据库:SQL看这一篇就看够了(附详细代码及截图) 这篇文章,发现连接不上服务器。 找一下解决办法。 一、打开服务界面 在键盘上按“WINR”快捷键,打开运行…

网站建设的关键做网站优化有前景吗

作者:George Kobar, Bahubali Shetti, Mark Settle 今天,我们很高兴地宣布 Elastic 的新管道查询语言 ES|QL(Elasticsearch 查询语言)的技术预览版,它可以转换、丰富和简化数据调查。 ES|QL 由新的查询引擎提供支持&am…

深圳网站建设推选上榜网络什么是域名空间

题目描述 求 n ! n! n!,也就是 1 2 3 ⋯ n 1\times2\times3\dots\times n 123⋯n。 挑战:尝试不使用循环语句(for、while)完成这个任务。 输入格式 第一行输入一个正整数 n n n。 输出格式 输出一个正整数&#xff0c…

哪个网站是做包装材料珍珠棉包管购物网站详细设计

在我的生活里,没有什么不开心的事情是一顿炒饭解决不了的,实在不行就两顿。把前一天剩出来的隔夜饭放到锅里和家里的食材进行组合、翻炒,就可以千变万化,方便好吃又管饱。小块头茶油炒饭,是一份易拉罐材质独立包装的炒…

织梦后台如何做网站地图如何做一个自己的公众号

总结:服务器批量处理http请求的大致流程 一客户端发起请求:可以多个请求同时发送二Web服务器解析请求(如:Nginx):可以多个请求同时解析三Servlet容器接收请求(如:tomcat)…

做网站程序的都不关注seo域名注册西部数码

Servlet(Server Applet),全称Java Servlet。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet…

做销售的什么网站好设计网站做海报

MySQL 中&#xff0c;当需要删除已创建的数据库时&#xff0c;可以使用 DROP DATABASE 语句。其语法格式为&#xff1a; DROP DATABASE [ IF EXISTS ] <数据库名>语法说明如下&#xff1a; <数据库名>&#xff1a;指定要删除的数据库名。IF EXISTS&#xff1a;用于…

做爰直播网站怎么网站开发

教育 -模拟电子技术-章节资料考试资料-沈阳工业大学【】 第一周作业 第一周单元测验 1、【单选题】在本征半导体中加入&#xff08; &#xff09;元素可形成N型半导体。 A、五价 B、四价 C、三价 D、二价 参考资料【 】 2、【单选题】PN结加正向电压时&#xff0c;空间电荷区将…

3yx这个网站做刷单wordpress 使用mssql

端口号冲突&#xff1a; 有其他的web程序在运行&#xff0c;占用了8080端口没有主清单属性&#xff1a; 在打包jar包前&#xff0c;没有加入打包的插件spring-boot-maven-plugin&#xff0c;参考1.SpringBoot入门的第一个完整小项目&#xff08;新手保姆版教会打包&#xff09;…

摄影课程自学网站wp上的wordpress

测试人员在项目测试中发现查询结果列表分页的时候&#xff0c;有的数据在好几页中重复显示&#xff0c;有的则一次都不显示&#xff0c;经过分析sql&#xff0c;原来问题出在测试人员在项目测试中发现查询结果列表分页的时候&#xff0c;有的数据在好几页中重复显示&#xff0c…

搭建网站的手机软件上市公司查询网站

全世界只有3.14 % 的人关注了爆炸吧知识真正决定人与人之间的差距的&#xff0c;其实是我们对事物的见识与内心的格局&#xff0c;见识的深浅决定人生的深浅&#xff0c;格局的大小决定了人生之路是宽是窄。今天给大家推荐几个有深度、有想法的公众号&#xff0c;希望能够给你带…

刚注册公司怎么做网站广州网站建设服务哪家好

在实际开发环境中&#xff0c;MySQL的GROUP BY操作的优化需要结合具体的业务场景和数据特点。以下是一些建议&#xff0c;可以帮助你在实际开发中优化GROUP BY查询&#xff1a; 使用合适的索引&#xff1a; 确保GROUP BY和ORDER BY中的列上存在索引。这有助于加速分组和排序操作…

做网批那个网站好有哪些网站可以做电子邀请函

对于初学者来说&#xff0c;找到一个好的框架来学习或者项目开发都是非常有必要的&#xff0c;而当你有一定开发经验后&#xff0c;你应该选择适合当前业务需要的框架。我这里并不想探讨哪个框架好哪个不好&#xff0c;这个永恒的话题就跟探讨“世界上哪种编程语言最屌”是一样…

延庆上海网站建设做明星同款的网站

tornado-设计初衷 1. 追求小而精 2. epoll IO多路复用和协程 3. 支持WebSocket 4. 单线程程序(GIL限制&#xff0c;本身某种意义上不启动多进程就是单线程程序) # Python GIL介绍详情 tronado应用场景 1. 大量的http请求连接(大量的用户请求&#xff0c;要求并发性和高性能) tr…

北京城建十建设工程有限公司网站php按步骤做网站

Elasticsearch 是一个开源的、基于 Lucene 的分布式搜索和分析引擎&#xff0c;设计用于云计算环境中&#xff0c;能够实现实时的、可扩展的搜索、分析和探索全文和结构化数据。它具有高度的可扩展性&#xff0c;可以在短时间内搜索和分析大量数据。 Elasticsearch 不仅仅是一个…

牡丹江市营商环境建设监督局网站珠海品牌型网站建设

HTTP响应详解 认识 "状态码" (status code) 状态码表示访问一个页面的结果 . ( 是访问成功 , 还是失败 , 还是其他的一些情况 ...). 以下为常见的状态码 . 200 OK 这 是一个最常见的状态码, 表示访问成功 . 抓包抓到的大部分结果都是 200 例如访问搜狗…

网站服务器租用多少钱才合理呢建个网站的电话号码

准备工作下载python&#xff0c;本文以python3.6为例。python3.6下载地址&#xff1a;python3下载地址&#xff0c;选择合适的版本安装。安装成功后&#xff0c;打开命令提示符&#xff0c;在其中输入python&#xff0c;显示如下信息&#xff0c;则说明安装成功。C:\Users\Ubun…

windows搭建网站开发热烈祝贺网站上线

结构光视觉技术是一种主动投影式的三维测量技术&#xff0c;通过使用投影仪和相机组成的系统来对物体进行三维测量 系统结构&#xff1a; 硬件系统&#xff1a; 常见编码方法&#xff1a; 结构光图案编码 常用的是格雷码和传统的二进制码相比&#xff0c;格雷码的编码数中任意…

自己做的网站背景怎么设置星链seo管理

在linux环境下安装前的准备1.内存空间大小 最少1GB的物理内存查看现有内存的命令#grep MemTotal /proc/meminfo2.交换分区的大小内存和交换分区的配置关系内存 (MB) 交换分区256~512 内存的2倍513~2048 内存的1.5倍2049…

猪八戒做的网站怎么样搭建wordpress博客终端

tinyxml2类对象 链接 XMLDocument xml文档(文件)对象。 作用&#xff1a; 加载xml文件&#xff0c;