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

网站建设和数据库维护网页设计素材 模板材料

网站建设和数据库维护,网页设计素材 模板材料,浙江网站备案查询,新乡 网站运营参考文章1:【比刷剧还爽】清华大佬耗时128小时讲完的Python高级教程!全套200集!学不会退出IT界! 参考文章2:清华教授大力打造的Python高级核心技术!整整100集,强烈建议学习(Python3…

参考文章1:【比刷剧还爽】清华大佬耗时128小时讲完的Python高级教程!全套200集!学不会退出IT界!

参考文章2:清华教授大力打造的Python高级核心技术!整整100集,强烈建议学习(Python3高级编程、异步IO并发编程)

2023python进阶天花板教程(顾安老师亲制) ①【配套资料】:
链接:https://pan.baidu.com/s/1Uc9r5kVGdaoC6PSTKGxdTA?pwd=2ynm 提取码:2ynm
②【配套课件+代码笔记】Python基础进阶100集!面向对象+魔法函数+元类编程+并发编程丨图灵Python教育丨顾安老师√网盘链接:https://pan.baidu.com/s/12ghyQx-zKHU-IZXIrYInkg?pwd=j915
提取码:j915
③【课件+源码】【Python并发编程】协程异步IO(asyncio)的介绍与使用-图灵Python教育“顾安老师”赞助提供√网盘链接:https://pan.baidu.com/s/1ztwnBYdrKdw6u6DWCHwDmg?pwd=kpyv,提取码:kpyv

仅供个人学习研究!文件较多,易失效!若无法访问,请及时向我反馈~

文章目录

  • 1. 多态与鸭子类型
    • 什么是鸭子类型?
    • 多态 vs 鸭子类型
      • 多态
      • 鸭子类型
    • 可迭代对象和鸭子类型(鸭子类型实现自定义可迭代对象:通过实现 `__iter__` 或者 `__getitem__` 方法)

1. 多态与鸭子类型

什么是鸭子类型?

“鸭子类型”(Duck typing)是一种编程概念,它更注重对象的行为,而不是对象所属的类型。这个词源自James Whitcomb Riley的名言:“当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。”

在Python中,"鸭子类型"指的是对对象的处理方式:如果一个对象实现了某个方法或者特性,那么就可以认为它就是那个类型。也就是说,一个对象的类型并不取决于它继承自什么类,或者实现了什么接口,而是取决于它有什么行为(或者说,具备哪些能力)。

例如,你可能需要一个可迭代对象。在Python中,任何定义了 __iter____getitem__ 方法的对象都可以被视为可迭代的。这意味着,你并不关心对象是否是列表、元组或者其他什么类型,只要它表现得像可迭代对象就行。

多态 vs 鸭子类型

多态和鸭子类型都是面向对象编程的概念,它们允许在一定程度上将不同类型的对象以相同的方式处理。

多态

多态 是指从相同的接口实现不同的行为。在使用多态时,通常会定义一个父类(或接口),并且会有多个子类继承这个父类,并重写父类的方法。这样,当你对父类对象调用这些方法时,实际上执行的是子类中重写的版本。

例如:

class Bird:def fly(self):raise NotImplementedError("Subclass must implement abstract method")class Sparrow(Bird):def fly(self):return "Sparrow flying"class Penguin(Bird):def fly(self):return "Penguin can't fly"birds = [Sparrow(), Penguin()]for bird in birds:print(bird.fly())

运行结果:
在这里插入图片描述

在以上代码中,Bird 类有一个 fly 方法,但它需要在子类 SparrowPenguin 中被重写。当我们遍历鸟类列表并调用 fly 方法时,Python会自动找到并调用每种鸟类的 fly 方法。这就是多态的体现。

鸭子类型

鸭子类型 则是另一种处理多类型问题的方式。在Python中,如果一个对象像鸭子一样走路、像鸭子一样叫,那么我们就可以把它当作鸭子。换句话说,我们不关心对象的实际类型,只关心它是否有我们需要的方法或属性。

例如:

class Duck:def quack(self):return "Duck quacks"class Dog:def quack(self):return "Dog pretends to quack"def make_it_quack(animal):print(animal.quack())duck = Duck()
dog = Dog()make_it_quack(duck)  # Outputs: Duck quacks
make_it_quack(dog)   # Outputs: Dog pretends to quack

在这个例子中,make_it_quack 函数接受一个动物对象作为参数,并调用它的 quack 方法。这个函数并不关心传入的对象是什么类型,只要它有一个 quack 方法就行。这就是鸭子类型的体现。

可迭代对象和鸭子类型(鸭子类型实现自定义可迭代对象:通过实现 __iter__ 或者 __getitem__ 方法)

在Python中,可迭代对象是指任何可以返回一个迭代器的对象。换句话说,任何包含__iter__()方法或者__getitem__()方法(只要传入递增的整数能够访问到元素)的对象都被视为可迭代对象。常见的如列表、元组、字符串、字典和文件等。

例如,我们可以通过for循环遍历一个列表:

my_list = [1, 2, 3]
for i in my_list:print(i)

在上面的例子中,列表 my_list 就是一个可迭代对象,我们可以使用for循环来遍历它。

这里的"可迭代对象"概念就涉及到了鸭子类型。在Python中,你并不需要知道一个对象具体是什么类型,只需要知道它能做什么。如果它表现得像一个可迭代对象(也就是说,它有 __iter__ 或者 __getitem__ 方法),那么你就可以把它当作可迭代对象使用。

这就意味着,你可以定义自己的类型,只要它实现了 __iter__ 或者 __getitem__ 方法,它就能被当作可迭代对象。例如:

class MyIterable:def __init__(self, data):self.data = datadef __iter__(self):return iter(self.data)my_iterable = MyIterable([1, 2, 3])
for i in my_iterable:print(i)

在这里插入图片描述

在这个例子中,我们定义了一个新的类型 MyIterable,它接受一个列表,并通过 __iter__ 方法返回这个列表的迭代器。尽管 MyIterable 不是内置的列表、元组或字符串等类型,但只要它实现了 __iter__ 方法,就可以被当作可迭代对象使用。这就是鸭子类型的体现:看起来像鸭子,走起路来像鸭子,那么它就是鸭子。

http://www.yayakq.cn/news/317021/

相关文章:

  • 国外域名的网站河南省新闻发布会直播
  • 怎么做网站站内搜索杭州旅游团购网站建设
  • 帝国做的网站根目录保定网站建设公司大全
  • 聊城网站建设费用大庆做网站的
  • 机械门户网站建设特点饮食网站模板
  • wordpress将首页转成html湘潭网站优化公司
  • 个人免费网站天津优化加盟
  • 搭建wap网站在线制作app下载
  • 平台类网站建设价格表免费wordpress中文主题下载
  • 网站开发人员应该用什么浏览器手机编辑WordPress博客
  • 中国设计师联盟网站备案网站转入阿里云
  • 网站建设模板怎么做查网站服务器所在地
  • 西宁网站设计制作公司网站网页设计前言
  • 厦门旅游网站建设网站开发技术主管工作职责
  • php网站源码提升学历有哪几种途径
  • 湛江市seo网站设计联系方式贵州萝岗seo整站优化
  • 网站平台建设实训体会机械类网站用什么做背景
  • 做交易网站需要用到的软件企业做网站认证有哪些好处
  • 巨省网站网页设计页面尺寸
  • 做推文的网站的推荐网站打开慢 可以只换空间不换域名吗
  • 龙岗网站制作培训班眉山网站推广
  • 做网站推广的工作好吗wordpress 如何获得数据库数据
  • 做网站网站建设专业公司哪家好搜索网
  • 西安机场商务宾馆百度做网站网络推广软文是一种很好的推广方式
  • 个人如何做网站软件seo指的是什么意思
  • 做视频的素材什么网站好上海第五届世界进口博览会
  • 建什么样的网站好云主机搭建asp网站
  • 电子商务网站建设与管理的书网站去除前台验证码
  • 长沙市建设局网站seo标题生成器
  • 宝塔面板怎么搭建网站wordpress进不去设置会乱码