02 2025 档案
摘要:python中有四种命名空间,简称LEGB。 Local: 函数内部变量,包括函数的参数。当函数被执行时,会为函数创建一个独立的namespace,函数执行完就消毁。 Enclosing: 函数中嵌套了内层函数时,外层函数的参数或变量所属的命名空间(即外层函数的Local空间)对内层函数来说就属于E
阅读全文
摘要:pprint: python内置模块,主要提供一些函数,用于替代print()函数,美化一些python内置的数据类型的输出,比如dict, tuple, list, dataclass等等。 pprint.pp(object, stream=None, indent=1, width=80, de
阅读全文
摘要:我们经常需要统计一块代码或一个函数运行的时间,下面总结一些计时方法,这些都来自于python内置的time模块。 time.time(): 这个函数返回一个浮点数,表示从起始时间点(1970-01-01, 00:00:00 (UTC)) 到现在的时间经过的秒数。 time.perf_counter(
阅读全文
摘要:functools.partial(func, /, *args, **keywords): 有的翻译为偏函数,本质上是装饰器和闭包。 给目标函数传入指定的实参后,返回一个新的函数(其实是Partial对象,但仍然是callable),新函数会"冻结"一部分参数(用位置传参的参数,在调用新函数时无法
阅读全文
摘要:类型和成员 inspect.getmembers(object[, predicate]): 返回一个对象的所有成员,返回形式是一个列表,列表中每个元素是一个二元组,分别为成员名称及成员内容。 下面以一个函数为例,演示一下都有哪些成员。 注意,__builtins__和__globals__两个特殊
阅读全文
摘要:itertools: python内置模块,提供了很多关于迭代器相关的方法。使用我们有能力在处理大量数据时,不会大量占用内存,而是像一个管道那样从源头获取一个元素,处理一个元素。 下面是三个构造无限内容的迭代器: itertools.count(start=0, step=1): 用于构造无限长度的
阅读全文
摘要:deque: deque是(double-ended queue)的缩写,读作"deck",底层机制是双向链表。 python内置的list的优势是足够灵活,根据索引快速访问一个元素,支持切片访问。 但list本质是一个连续的内存区域,当列表在追加元素的时候,有时候需要额外分配内存(动态分配内存有个
阅读全文