当前位置: 首页 > news >正文

一键生成表白网站网站建设发展方向及前景展望

一键生成表白网站,网站建设发展方向及前景展望,营销活动策划方案,做网站最好软件什么是Python的多态#xff1f;多态的好处就是#xff0c;当我们需要传入Dog、Cat、Tortoise……时#xff0c;我们只需要接收Animal类型就可以了#xff0c;因为Dog、Cat、Tortoise……都是Animal类型#xff0c;然后#xff0c;按照Animal类型进行操作即可。由于Animal…什么是Python的多态多态的好处就是当我们需要传入Dog、Cat、Tortoise……时我们只需要接收Animal类型就可以了因为Dog、Cat、Tortoise……都是Animal类型然后按照Animal类型进行操作即可。由于Animal类型有run()方法因此传入的任意类型只要是Animal类或者子类就会自动调用实际类型的run()方法这就是多态的意思对于一个变量我们只需要知道它是Animal类型无需确切地知道它的子类型就可以放心地调用run()方法而具体调用的run()方法是作用在Animal、Dog、Cat还是Tortoise对象上由运行时该对象的确切类型决定这就是多态真正的威力调用方只管调用不管细节而当我们新增一种Animal的子类时只要确保run()方法编写正确不用管原来的代码是如何调用的。这就是著名的“开闭”原则对扩展开放允许新增Animal子类对修改封闭不需要修改依赖Animal类型的run_twice()等函数。多态即多种形态在运行时确定其状态在编译阶段无法确定其类型这就是多态。Python中的多态和Java以及C中的多态有点不同Python中的变量是弱类型的在定义时不用指明其类型它会根据需要在运行时确定变量的类型(个人觉得这也是多态的一种体现)并且Python本身是一种解释性语言不进行预编译因此它就只在运行时确定其状态故也有人说Python是一种多态语言。在Python中很多地方都可以体现多态的特性比如内置函数len(object)len函数不仅可以计算字符串的长度还可以计算列表、元组等对象中的数据个数这里在运行时通过参数类型确定其具体的计算过程正是多态的一种体现。这有点类似于函数重载(一个编译单元中有多个同名函数但参数不同)相当于为每种类型都定义了一个len函数。这是典型的多态表现。有些朋友提出Python不支持多态我是完全不赞同的。   本质上多态意味着可以对不同的对象使用同样的操作但它们可能会以多种形态呈现出结果。len(object)函数就体现了这一点。在C、Java、C#这种编译型语言中由于有编译过程因此就鲜明地分成了运行时多态和编译时多态。运行时多态是指允许父类指针或名称来引用子类对象或对象方法而实际调用的方法为对象的类类型方法这就是所谓的动态绑定。编译时多态有模板或范型、方法重载(overload)、方法重写(override)等。而Python是动态语言动态地确定类型信息恰恰体现了多态的特征。在Python中任何不知道对象到底是什么类型但又需要对象做点什么的时候都会用到多态。有一种称为”鸭子类型(duck typing)“的东西讲的也是多态_metaclass_type # 确定使用新式类class Duck:def quack(self):print Quaaaaaack!def feathers(self):print The duck has white and gray feathers.class Person:def quack(self):print The person imitates a duck.def feathers(self):print The person takes a feather from the ground and shows it.def in_the_forest(duck):duck.quack()duck.feathers()def game():donald Duck()john Person()in_the_forest(donald)in_the_forest(john)game()就in_the_forest函数而言参数对象是一个鸭子类型它实现了方法多态。但是实际上我们知道从严格的抽象来讲Person类型和Duck完全风马牛不相及。运算符多态def add(x,y):return xyprint add(1,2) #输出3print add(hello,,world) #输出hello,worldprint add(1,abc) #抛出异常 TypeError: unsupported operand type(s) for : int and strPython的加法运算符是”多态“的理论上我们实现的add方法支持任意支持加法的对象但是我们不用关心两个参数x和y具体是什么类型。Python同样支持运算符重载class Vector:def __init__(self, a, b):self.a aself.b bdef __str__(self):return Vector (%d, %d) % (self.a, self.b)def __add__(self,other):return Vector(self.a other.a, self.b other.b)v1 Vector(2,10)v2 Vector(5,-2)print v1 v2在C, Java, C#中实现多态的方式通常有重写和重载两种从上面两段代码我们其实可以分析得出Python中实现多态也可以变相理解为重写和重载。在Python中很多内置函数和运算符都是多态的。[Reference]https://vancele.gitbooks.io/python/content/chapter7.html
http://www.yutouwan.com/news/100881/

相关文章:

  • gta5线下办公室网站正在建设wordpress登录后评论
  • 移动应用开发公司网站模板徐州市建设工程质监站网站
  • 网站建设的7种流程广州十大电商公司
  • 网站建设与网页设计课石家庄网站建设费用
  • 建筑网站、小程序微信如何开发
  • 网站交互主要做什么dede网站文档不能更新
  • 哪里有卖自己做的网站上海洛可可设计公司
  • 淄博网站建设招聘十大搜索引擎入口
  • 沈阳网站开发工程师招聘网h5响应式网站设计方案
  • 上海龙雨建设工程有限公司网站建设人才网证书查询
  • 模版网站是什么意思福建建筑信息平台
  • 阿里云服务器搭建个人网站深圳专业网站制作多少钱
  • 如皋建设工程局网站网站建设中的注册和登录页面
  • 如何把做的网站放到百度上网站建设开发 脚本语言
  • 沈阳高端网站开发一套软件大概要多少钱
  • 暴走漫画网站建设目的找项目去哪个网站
  • 自助 建站安康信息平台
  • 怎么做一个网站 免费免费广告设计制作网站
  • 电商设计工资站长工具seo推广
  • 安防公司做网站图片小说阅读网站开发视频
  • 小程序开发和网站开发的区别wordpress导航栏改字体
  • 4399网站开发人员 被挖走给有后台的网站做网页
  • 企业网站建设个人博客做试卷挣钱的网站
  • 做调查的网站‘给客户做网站建设方案
  • 火车票网站开发长沙制作网页网站
  • 艺术类网站模板免费企业网站系统源码下载
  • 怎么制作网站登录上海百度关键词搜索推广服务
  • wordpress伪静态地址沧州网站建设优化公司
  • 网站传送门怎么做亚马逊官网首页中国
  • 网站如何做背景音乐黄江东莞网站建设