上下文管理器 读写文件时,如果一个文件被打开,且未被正常关闭,可能会出现一些意想不到的结果。 Python提供了上下文管理器的机制来解决这个问题,它通常与关键字with一起使用。对于上面的例子,用with语句调用的方式为: with <expression>: <statements> with open('my_file', 'w'…
装饰器 基础用法 以函数作为参数,并且返回一个新函数的函数是一个装饰器: def dec(f): print(f'I am decorating function {f.__name__}') return f dec(len) I am decorating function len 装饰器可以在函数定义时用@调用: @dec def add(x, y): return x …
迭代器与生成器 迭代器 可迭代对象可以在 for 循环中使用: x = [2, 4, 6] for n in x: print(n) 2 4 6 之所以可以被for循环迭代,是因为这些对象拥有一个迭代器,可以用.__iter__()方法获得: x.__iter__() 一个迭代器需要满足两个条件: .__iter__()方法返回自身 .__next__()方法返回下一个迭代值,当迭代完成后,抛出一…