鸭子协议(忽略对象真正类型,转而关注对象有没有实现所需的方法,签名和语义) 标准库中的抽象基类 collections.abc模块中的抽象基类 抽象方法是抽象基类中用来强制子类必须实现的方法,如果子类不实现该方法,则会报错 上述例子中的load,pick属于抽象方法,Tombola的子类必须实现这两个方法,否则报错 实际上,抽象基类的定义需要对python有深入的了解,一般来说只需要能够理解看懂源码即可. 抽象基类的句法详解…
一直听说python requests库对于接口自动化测试特别合适,但由于自身代码基础薄弱,一直没有实践: 这次赶上公司项目需要,同事小伙伴们一起学习写接口自动化脚本,听起来特别给力,赶紧实践一把: 自身电脑装了python2.x,装上,导入requests库,导入第三方库的方法如下:   PyCharm→Preferences→Project:项目名→Project Interpreter,点击左下角的+号:        开始写第一个接口,我的想法是先把接口的url给拼接出来,然后再验证返回…
本章讨论的话题 python如何计算装饰器句法 python如何判断变量是不是局部的(通过函数内部是否给变量赋值过来判断是否是局部变量) 闭包存在的原因和工作原理(闭包是一种函数,它会保留定义函数时存在的自由变量的绑定,这样调用函数时,虽然定义作用域不可用了,但是仍能使用那些绑定.函数中的函数) nonlocal能解决什么问题(nonlocal是新出现的保留关键字,python3.0中引入)(将局部变量声明为自由变量) 探讨 实现行为良好的装饰器 标准库中有用的装饰器 实现一个参数化的装饰器 装…
字符问题 把码位转化成字节序列的过程是编码,把字节序列转化成码位的过程是解码 把unicode字符串当成人类可读的文本,码位当成机器可读的, 将字节序列编程人类可读是解码,把字符串编码成字节序列是编码 字节概要 python内置了两种基本的二进制序列类型,python3引入的不可变的bytes类型和python2.6添加的可变bytearray类型 基本的编解码器 别依赖默认值 python2的默认编码是ascii而python3是utf-8 这章内容主要讨论unicode编码,其实觉得没什么很…
在python中,函数是一等对象,一等对象是满足以下条件的程序实体 1在运行时创建 2能复制给变量或数据结构的元素 3能作为参数传给函数 4能作为函数的返回结果 高阶函数(接受函数作为参数或者把函数作为结果返回的函数),如map和sorted函数 最为人熟知的高阶函数有map,filter,reduce和apply,apply在python3中移除了 map,filter和reduce的替代品 map和filter现在可以使用列表推导来替代 reduce在python2是内置函数,python3…
什么是可散列的数据类型 如果一个对象是可散列的,那么在这个对象的生命周期中,他的散列值是不变的,而且这个对象需要实现__hash__()方法.另外可散列对象还要有__qe__()方法.这样才能跟其他键做比较.如果两个可散列对象是相等的.那么他们的散列值一定是一样的. 原子不可变数据类型(str, bytes和数值类型)都是可散列类型,frozenset也是可散列的,因为根据其定义.frozenset里只能容纳可散列类型.元组的话.只有当一个元组包含的所有元素都是可散列类型的情况下,他才是可散列的…
python 自称 "Batteries included"(自带电池, 自备干粮?), 就是因为他提供了很多内置的模块, 使用这些模块无需安装和配置即可使用. 本章主要介绍 python 的一些内置常用核心模块 Python 常用的核心模块 一.collections模块 这是个有用的容器模块, 提供了许多有用的集合, 来弥补通用的内置容器:list, dict, tuple, set 1.1 namedtuple() namedtuple()是一个工厂函数, 用来创建一个tuple…
python 自称 "Batteries included"(自带电池, 自备干粮?), 就是因为他提供了很多内置的模块, 使用这些模块无需安装和配置即可使用. 本章主要介绍 python 的一些内置常用核心模块 Python 常用的核心模块 三.json模块 json模块用于使用JSON序列化和反序列化对象. JSON是JavaScript Object Notation的简写, 也叫 JavaScript 对象符号. 3.1 json语法格式 JSON 是一种轻量级的数据交换格式,…
python 自称 "Batteries included"(自带电池, 自备干粮?), 就是因为他提供了很多内置的模块, 使用这些模块无需安装和配置即可使用. 本章主要介绍 python 的一些内置常用核心模块 Python 常用的核心模块 四.datetime模块 datetime模块是专门用来处理时间的标准库模块. 模块名是datetime, 这个模块的内部定义多个类. datetime模块下有个类datatime既可以操作日期, 也可以操作时间. 主要研究这个类 4.1获取当前…
从 Python 3.4 起,标准库中有两个名为 Future 的类:concurrent.futures.Future 和asyncio.Future.这两个类的作用相同:两个 Future 类的实例都表示可能已经完成或者尚未完成的延迟计算 我们要记住一件事:通常情况下自己不应该创建期物,而只能由并发框架(concurrent.futures 或 asyncio)实例化.原因很简单:期物表示终将发生的事情,而确定某件事会发生的唯一方式是执行的时间已经排定.因此,只有排定把某件事交给 concu…