在python中有这么一类方法,定义在某一个类中,如果某一个对象实现了这个方法,而并没有继承于这个类型,但他也称为这个类型,即魔法方法
python本身是基于鸭子类型实现的语言
如下代码

#go语言的接口设计是参考了鸭子类型,和java的接口概念#什么是鸭子类型,什么是协议
#当看到一只走起来,游泳起来像鸭子,叫起来也像鸭子的鸟,那么把这只鸟叫做鸭子
#采用的是面向对象的类继承class Animal:def born(self):passdef walk(self):passclass Dog(Animal):passclass Cat(Animal):passdog = Dog()#dog是不是动物类,实际上dog就是动物类,忽略了鸭子类型,对于用惯面向对象的人来说
#python语言的本身的设计来讲是基于鸭子类型实现的#Aniaml实际上只是定义了一些方法的名称而已,其他的任何类只要实现了这个Animal里面的方法,那这个类就是Animal类型from typing import Iterable   #实际上list没有继承Iterable类a = []
print(type(a))
print(isinstance(a,Iterable))b = tuple()
print(type(b))
print(isinstance(b,Iterable))class Company(object):def __init__(self,employee_list):self.employee = employee_listdef __iter__(self):return iter(self.employee)company = Company(["tom","bob","jane"])
if isinstance(company,Iterable):print("company 是 Iterable类型")
else:print("company 不是 Iterable类型")for em in company:print(em)

python的魔法方法相关推荐

  1. python __reduce__魔法方法_Python魔法方法指南

    (译)Python魔法方法指南 简介 本指南归纳于我的几个月的博客,主题是 魔法方法 . 什么是魔法方法呢?它们在面向对象的Python的处处皆是.它们是一些可以让你对类添加"魔法" ...

  2. Python之魔法方法详解

    转载于: https://pyzh.readthedocs.io/en/latest/python-magic-methods-guide.html 11.1. 简介 本指南归纳于我的几个月的博客,主 ...

  3. Python基础--魔法方法()运算符重载)

    文章目录 Python基础--魔法方法()运算符重载) init方法 str方法 Python基础–魔法方法()运算符重载) init方法 class Cat:def hello(self):prin ...

  4. Python基础——魔法方法(一)

    文章目录 魔法方法 构造和析构 算数运算 算数操作符 反运算 增量赋值运算 一元操作符 属性访问 魔法方法 前面在介绍类和对象时,已经接触过Python常用的魔法方法,那么什么是魔法方法呢? 魔法方法 ...

  5. python魔法方法学不懂_深入学习Python之魔法方法

    什么是Python魔法方法 魔法方法就如同它的名字一样神奇,总能在你需要的时候为你提供某种方法来让你的想法实现.魔法方法是指Python内部已经包含的,被双下划线所包围的方法,这些方法在进行特定的操作 ...

  6. 用Python的魔法方法实现扑克牌

    用Python的魔法方法实现扑克牌 """ @author:amgoole @date: 2021/6/26 @email: xwen.xi@icloud.com &qu ...

  7. Python的魔法方法总结

    转自:http://pyzh.readthedocs.io/en/latest/python-magic-methods-guide.html 原文: http://www.rafekettler.c ...

  8. Python的魔法方法 .

    基本行为和属性 __init__(self[,....])构造函数 . 在实例化对象的时候会自动运行 __del__(self)析构函数 . 在对象被回收机制回收的时候会被调用 __str__(sel ...

  9. python __reduce__魔法方法_非常全的通俗易懂 Python 魔法方法指南(下)

    点击上方"咸鱼学Python",选择"加为星标" 第一时间关注Python技术干货! 作者:Rafe Kettler 翻译:hit9 来源:https://py ...

最新文章

  1. 充分理解HP Flex-10和VMware的端口映射关系
  2. 后台获取视图对应的字符串
  3. STM32时钟配置方法详解
  4. 【记录】解决uni-app 用nginx反向代理出现Invalid Host header问题
  5. 数据可视化实现技术(canvas/svg/webGL)
  6. 【转】dcmtk程序包综述(1)!!!!!!
  7. 查看IIS日志 各大搜索引擎是否访问网站
  8. Android Studio添加android.support.v4包的依赖(解决V4的FragmentManager的错误)
  9. 关于使用Kaptcha验证码框架遇到的问题
  10. iOS底层探索之类的结构(中):bits
  11. g2o:一种图优化的C++框架
  12. C++ Primer 5th ed.pdf
  13. pxhere - 世界知名的免费摄影图库,可以免费商用
  14. 太阳高度角/方位角计算公式
  15. 计算机应用班级口号,适用于班级的口号大全
  16. 客户关系管理:CRM战略
  17. 饥饿的牛(hunger)
  18. 使用sftp在客户端与服务器之间进行文件传输
  19. 我所知道的张小龙 by和菜头
  20. Python电子相册

热门文章

  1. Linux 进程间通信 - 信号量
  2. linux内实践核分析模块
  3. 查看sqlserver 2008中性能低下的语句
  4. 西南石油大学计算机科学学院教授,张小洪(计算机科学学院)老师 - 西南石油大学 - 院校大全...
  5. java中打开特定编码的文本_指定编码写入和读取文件内容
  6. 利用python编写祝福_手把手|教你用Python换个姿势,送狗年祝福语
  7. 塞尔达传说gba_1986版塞尔达 回顾34年经典系列历代作品 满分最多系列游戏
  8. Python使用两个Event对象同步生产者消费者问题
  9. python 批量网址 网页截图_python实现网页截图
  10. centos 安装mysql客户端_linux下mysql的yum源安装/配置/卸载