Python Tricks
_淡泊宁静
这个作者很懒,什么都没留下…
展开
-
python中的生成器
生成器是什么?生成器是简化版的迭代器。生成器函数是一种语法糖,用于编写支持迭代器协议的对象。与编写基于类的迭代器相比,生成器能抽象出许多样板代码。迭代器相关内容:python中的迭代器生成器函数无限生成器基于类的无限循环的迭代器class Repeater: def __init__(self, value): self.value = value ...原创 2019-11-27 14:18:43 · 191 阅读 · 0 评论 -
python中的迭代器
优雅的for-in循环内部如何工作?在Python中使用迭代器协议,只要对象支持__iter__和__next__双下划线方法,就能使用for-in循环编写支持迭代器协议的Python类无限迭代实现一个可以通过for-in循环迭代的类Repeaterclass Repeater: def __init__(self, value): self.value =...原创 2019-11-26 11:25:33 · 381 阅读 · 1 评论 -
python中的浅拷贝和深拷贝
为什么需要拷贝(克隆)对象?Python中的赋值语句不会创建对象(包括不可变对象)的副本,而只是将名称绑定到对象上。当我们需要用到对象的副本,以便修改副本时不会改动主体,就需要拷贝对象。制作浅副本用list()工厂函数制作浅副本>>> list_1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]>>> list_2 = ...原创 2019-11-14 14:29:31 · 162 阅读 · 0 评论 -
python中的装饰器
装饰器Python装饰器的应用将通用的功能(日志,访问控制和授权,缓存等等)应用到现有的可调用对象如类或函数,同时又不会永久修改可调用对象本身。理解装饰器前要了解的函数特性函数是对象,可以分配给变量并传递给其他函数,以及从其他函数返回;词法闭包,在函数内部也能定义函数,并且子函数可以捕获父函数的局部状态...原创 2019-11-11 15:35:31 · 201 阅读 · 0 评论 -
python中的上下文管理器和with语句
引入:打开一个文件并写入‘hello, world’,可用代码一和代码二实现:代码一:f = open("hello.txt", 'w')try: f.write('hello, world')finally: f.close()代码二:with语句通过在上下文管理器中封装try…finally语句的标准用法来简化异常处理with open('hello.txt', 'w')...原创 2019-11-04 15:49:13 · 286 阅读 · 0 评论