
Python进阶
测试小小小
这个作者很懒,什么都没留下…
展开
-
软件测试升职加薪必看系列:自动化测试Python进阶(十)
Python进阶10 多线程 python中的GIL GIL(Global Interpreter Lock),就是一个锁。 Python中的一个线程对应于 C语言 中的一个线程。 GIL使得同一时刻只有一个线程在一个cpu上执行字节码,无法将多个线程分配到多个cpu上进行同步运行。如果在单核cpu上,线程是并发运行,而不是并行。 image 首先,这样效率不高,但是看似也不会产生数据访问冲突的问题,毕竟同一时刻只有一个线程在一个核上运行嘛,然而: sum = 0 def add(原创 2020-09-16 21:16:15 · 317 阅读 · 0 评论 -
软件测试升职加薪必看系列:自动化测试Python进阶(九)
Python进阶9 Python socket编程 引言 sockets的历史悠久,它们最早在 1971 年的 APPANET 中使用,后来成为1983年发布的Berkeley Software Distribution(BSD)操作系统中的API,称为Berkeley sockets。 Web服务器和浏览器并不是使用sockets的唯一程序,各种规模和类型的客户端 - 服务器(client - server)应用程序也得到了广泛使用。 今天,尽管socket API使用的底层协议已经发展多年原创 2020-09-16 21:13:29 · 227 阅读 · 0 评论 -
软件测试升职加薪必看系列:自动化测试Python进阶(八)
Python进阶8 迭代器和生成器 python的迭代协议 引言 迭代器是访问集合内部元素的一种方式,一般用来遍历数据。 迭代器和用下标索引访问的方式不一样,迭代器是不能返回值的 迭代器提供了一种惰性访问数据的方式,需要的时候才产生数据。 可迭代类型都实现了迭代协议,实际上就是__iter__()这个魔法函数。 可迭代类型和迭代器 前面讲过,collections.abc模块中定义了很多内置的抽象基类,现在我们重点关注其中的两个:Iterable和Iterator Iterable..原创 2020-09-16 21:11:07 · 221 阅读 · 0 评论 -
软件测试升职加薪必看系列:自动化测试Python进阶(七)
Python进阶7 元类编程 Python属性函数 引言 Python中我们对于自己设置的类,尽量要使其属性私有化,获得更好的封装性。 如果要访问和修改私有属性,要为其设置set和get方法。 Python中,可以使用特殊的装饰器将set和get方法属性化,这样就能够使用更简洁的语法去调用这些方法。 使用案例 class Person: def __init__(self, name, age): self.__name = name self._原创 2020-09-16 21:07:43 · 276 阅读 · 0 评论 -
软件测试升职加薪必看系列:自动化测试Python进阶(六)
Python进阶6 对象引用、垃圾回收、可变性 Python中的变量是什么 引言 Python和java中的变量本质不一样,java的变量可以理解为一个盒子,用来容纳我们的对象,使用前要先声明它,好分配给我们合适的内存空间。Python的变量可以理解为一个标签,先构造出对象,再将变量贴在对象上。 Python变量没有类型,对象才有,本质上是指针。同一个变量,可以表示不同对象。 使用案例 """ a 和 b 都贴在了同一个对象上 """ a = [1, 2] b = a a.append(6原创 2020-09-15 22:02:49 · 212 阅读 · 0 评论 -
软件测试升职加薪必看系列:自动化测试Python进阶(五)
Python进阶5 深入Python的set和dict dict常用操作 引言 clear(): 清空字典 copy(): 返回一个浅拷贝 fromkeys(): 将可迭代对象中的每一个元素作为key和同一个value拼成字典 get(): 根据key返回value,若无对应的键值对,则返回None,也可以指定默认返回值,和索引访问相比,不会产生异常。 items():返回一个dict_items类型,支持迭代,键值对以元组形式组织 setdefault(): 获取key对应的valu原创 2020-09-15 22:01:19 · 315 阅读 · 0 评论 -
软件测试升职加薪必看系列:自动化测试Python进阶(四)
Python进阶4 自定义序列类型 序列类型的分类 按照序列存储数据的类型 容器序列:list, tuple, deque 扁平序列:str, bytes, array.array, bytearray 按照序列是否可变 可变序列:list, deque, array.array, bytearray 不可变序列:str, tuple, bytes 序列的abc继承关系 引言 collections.abc模块中有很多内置的抽象基类 序列主要和两个抽象基类有关:Sequence和..原创 2020-09-15 20:33:26 · 297 阅读 · 0 评论 -
软件测试升职加薪必看系列:自动化测试Python进阶(三)
Python进阶3 深入类和对象 鸭子类型和多态 引言 在鸭子类型中,关注的不是对象的类型本身,而是它是如何使用的。 例如,在不使用鸭子类型的语言中,我们可以编写一个函数,它接受一个类型为鸭子的对象,并调用它的走和叫方法。 在使用鸭子类型的语言中,这样的一个函数可以接受一个任意类型的对象,并调用它的走和叫方法。如果这些需要被调用的方法不存在,那么将引发一个运行时错误。任何拥有这样的正确的走和叫方法的对象都可被函数接受的这种行为引出了以上表述,这种决定类型的方式因此得名...原创 2020-09-15 20:32:01 · 260 阅读 · 0 评论 -
软件测试升职加薪必看系列:自动化测试Python进阶(二)
Python进阶2 魔法函数 引言 魔法函数是Python中定义的,以__开头,__结尾,形如__func__()的函数,一般使用已经存在的魔法函数即可。 使用这样一些函数,可以让我们自定义的类有更加强大的特性。 魔法函数是隐式调用的,不需要我们显示调用。 class Language(object): def __init__(self, language_list): self.lans = language_list # 如果要遍历所有的语言,可以:原创 2020-09-15 20:30:29 · 262 阅读 · 0 评论 -
软件测试升职加薪必看系列:自动化测试Python进阶(一)
Python进阶1 Python中一切皆对象 引言 Java语言也是面向对象的语言,但是Python要更加彻底 Python的面向对象特性,是它使用起来灵活的根本所在 对象的特点 可以赋值给一个变量 # 函数也是对象 def test(name): print(name) my_func = test # 注意 只写函数名 和 函数名加括号 的区别 my_func("MetaTian") # 打印:MetaTian 可以添加到集合中去 def plus原创 2020-09-15 20:28:41 · 214 阅读 · 0 评论