摘要:
pathlib: 是python内置模块,用来处理文件及目录操作。 相比于os.path,它将路径包装成对象,使用起来更符合直觉,用这一个模块就基本上可以完成所有对文件及目录的增删改查,遍历,重命名,查找等各种操作。 使用此模块时,我们主要使用Path类,它提供了绝大部分的属性和方法来实现我们的日常 阅读全文
摘要:
regular package 和 namespace package 常规包: 包里带有__init__.py文件的包。 import regular_package 等价于 import regular_package.init。 即,导入常规包,其实就是运行包里的__init__文件。 创建一 阅读全文
摘要:
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本质是一个连续的内存区域,当列表在追加元素的时候,有时候需要额外分配内存(动态分配内存有个 阅读全文
摘要:
operator: 模块提供了很多python内置运算符对应的函数。 比如加,减,乘,除,与,或,非,is, is not等等。 此模块存在的意义:有时我们在函数式编程时,经常要将一个函数传递给另一个函数。对于像加,减,乘,除这些我们当然可以自定义一个函数,或使用lambda函数来做为参数传递,但这 阅读全文