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

中国建设银行钓鱼网站旅游景区网站建设

中国建设银行钓鱼网站,旅游景区网站建设,南昌网站建设模板文档,购买wordpress模板本章讨论的话题是接口:从鸭子类型的代表特征动态协议#xff0c;到使接口更明确、能验证实现是否符合规定的抽象基类(Abstract Base Class#xff0c;ABC)。 11.1 Python 文化中的接口和协议 对 Python 程序员来说#xff0c;“X 类对象”“X 协 议”和“X 接口”都是一个…本章讨论的话题是接口:从鸭子类型的代表特征动态协议到使接口更明确、能验证实现是否符合规定的抽象基类(Abstract Base ClassABC)。 11.1 Python 文化中的接口和协议 对 Python 程序员来说“X 类对象”“X 协 议”和“X 接口”都是一个意思。 11.2 Python 喜欢序列 Python 数据模型的哲学是尽量支持基本协议。 为了迭代对象解释器会尝试调用两个不同的方法。 11.3 使用猴子补丁在运行时实现协议 shuffle 函数要调换集合中元素的位置而 FrenchDeck 只实现了不可变的序列协议。可变的序列还必须提供 __setitem__ 方法。 def set_card(deck, position, card): ... deck._cards[position] card ...FrenchDeck.__setitem__ set_cardshuffle(deck) 这种技术叫猴子补丁在运行时修改类或模块而不改动源码。 11.4 Alex Martelli的水禽 基本上不需要自己编写新的抽象基类只要正确使用现有的抽象基类就能获得 99.9% 的好处而不用冒着设计不当导致的巨大风险。 11.5 定义抽象基类的子类 11.6 标准库中的抽象基类 11.6.1 collections.abc 模块中的抽象基类 Iterable、Container 和 Sized 各个集合应该继承这三个抽象基类或者至少实现兼容的协议。Iterable 通过 __iter__ 方法支持迭代Container 通过 __contains__ 方法支持 in 运算符Sized 通过 __len__ 方法支持 len() 函数。 Sequence、Mapping 和 Set 这三个是主要的不可变集合类型而且各自都有可变的子类。 MappingView 映射方法 .items()、.keys() 和 .values() 返回的对象分别是 ItemsView、 KeysView 和 ValuesView 的实例。前两个类还从 Set 类继承了丰富的接口。 Callable 和 Hashable 这两个抽象基类与集合没有太大的关系只不过因为 collections.abc 是标准库中定义 抽象基类的第一个模块而它们又太重要了因此才把它们放到 collections.abc 模块 中。我从未见过 Callable 或 Hashable 的子类。这两个抽象基类的主要作用是为内置函 数 isinstance 提供支持以一种安全的方式判断对象能不能调用或散列。· Iterator 注意它是 Iterable 的子类。 11.6.2 抽象基类的数字塔 NumberComplexRealRationalIntegral 11.7 定义并使用一个抽象基类 import abcclass Tombola(abc.ABC):abc.abstractmethod def load(self, iterable): 从可迭代对象中添加元素。abc.abstractmethod def pick(self): 随机删除元素然后将其返回。 如果实例为空这个方法应该抛出LookupError。 def loaded(self): 如果至少有一个元素返回True否则返回False。return bool(self.inspect())def inspect(self): 返回一个有序元组由当前元素构成。items []while True:try:items.append(self.pick())except LookupError:breakself.load(items)return tuple(sorted(items))自己定义的抽象基类要继承 abc.ABC。抽象方法使用 abstractmethod 装饰器标记而且定义体中通常只有文档字符串。抽象基类可以包含具体方法抽象基类中的具体方法只能依赖抽象基类定义的接口(即只能使用抽象基类中的其他具体方法、抽象方法或特性)。即便实现了子类也必须覆盖抽象方法但是在子类中可以使用 super() 函数调用抽象方法为它添加功能而不是从头开始实现。 11.7.1 抽象基类句法详解 11.7.2 定义Tombola抽象基类的子类 11.7.3 Tombola的虚拟子类 Tombola.register class TomboList(list):注册之后可以使用 issubclass 和 isinstance 函数判断 TomboList 是不是 Tombola 的子类。Tombolist 没有从 Tombola 中继承任何方法。 11.8 Tombola子类的测试方法 11.9 Python使用register的方式 Sequence.register(tuple) Sequence.register(str) Sequence.register(range) Sequence.register(memoryview)11.10 鹅的行为有可能像鸭子
http://www.hkea.cn/news/14290821/

相关文章:

  • 网站个人中心模板用模板做的网站不好优化
  • 做网站不带优化的吗wordpress滑块教程
  • 网站如何在百度软文推广文案
  • 潍坊网站制作公司网站程序 不能创建文件夹
  • 张家界市网站建设设计提供电商网站建设
  • 网站建设后预期推广方式怎样修改wordpress密码
  • iis7 添加php网站开发一个商城网站多少钱
  • 网站的角色设置如何做湖北seo服务
  • 如何免费做网站的教程四川建筑人才招聘网
  • 网站建设平台网站设计论坛搭建教程
  • 吉林省建设监理协会网站全面的聊城网站建设
  • 江苏南京建设局官方网站域名解析到别的网站
  • 30岁做网站运营今天发生的重大新闻
  • 河北省城乡建设培训网官方网站抖音流量推广神器软件
  • 网站建设空间多大网站后台不显示验证码
  • 南阳做个网站多少钱上海网站建设开发电话
  • 北京网站建设推seo优化技巧有哪些
  • 哈尔滨智能建站模板郑州做网站建设哪家好
  • 用jsp做婚纱网站的流程海会主机做的网站都能干什么的
  • 有做门窗找活的网站吗网站建设万户
  • 网站建设百度认证图片企业做什么需要有网站
  • 网站商品台管理系统做网站为什么能挣钱
  • 国外免费空间网站申请网站版面布局结构图
  • 大连网站关键词推广html5网站搭建
  • 商城网站建设信息免费站推广网站2022
  • 头条网站收录提交入口互联网保险中介平台
  • 四川省建设厅申报网站南宁模板建站
  • 成都网站seo诊断石材企业网站源码
  • 百度云注册域名可以做网站明码玉环哪里有做网站
  • 汽车o2o网站建设国外代理ip地址 免费