Python并行

threding

_thread

_dummy_thread

dummy_threading

multiprocessing

concurrent

concurrent.futures

subprocess

sched

queue

数字、数学

numbers

math

cmath

decimal

fractions

random

statics

文本处理服务

string

re

difflib

textwrap

unicodedata

stringrep

readline

rlcompleter

内置异常

基类

具体警告

警告

异常层次服务

Funtioncal Programming Tools

builtins

  • filter(iterable, func):过滤func返回布尔否值元素
  • enumerate(iterable):添加索引迭代
  • zip(*iterables):打包迭代元素
  • map(func, *iterables)func接受各迭代器中元素作为 参数调用(类似zip
  • iter:两种产生迭代器的模式
    • iter(iterable):返回迭代器
    • iter(callable, sentinel):调用callable直到返回 sentinel停止迭代(不包括)
      • 可用于替代while循环

itertools

itertools:包含为高效循环而创建迭代器的函数

无穷迭代器

  • count(start, step=1):步长累加
  • cycle(p):循环p中元素
  • repeat(elem, n=None):重复elem

迭代元素处理

  • accumulate(p, func=None):累加p中元素
  • chain(*iters):链接迭代器
  • chain.from_iterable(iterable):链接可迭代对象中迭代器
  • compress(data, selelctors):根据selectors选取data
  • dropwhile(pred, seq):保留首个满足pred之后所有元素
  • takewhile(pred, seq):保留首个不满足pred之前元素
  • filterfalse(pred, seq):反filter
  • groupby(iterable, key=None):根据key(v)值分组迭代器
  • islice(seq, start=0, stop=None, step=1):切片
  • starmap(func, seq):迭代对seq中执行func(*elem)
  • tee(iterable, n=2):复制迭代器,默认2个
  • zip_longes(*iters, fillvalue):依最长迭代器zip,较短 循环填充或fillvalue填充

排列组合

  • product(*iters, repeat=1):笛卡尔积
  • permutations(p, r=None)r长度的排列,缺省全排列
  • combinations(p, r)r长度组合
  • combinations_with_replacement(p,r):可重复组合

functools

functools:包含高阶函数,即参数、返回值为其他函数的函数

函数转换

  • cmp_to_key(func):将旧式比较函数转换新式key function

    • 常用在以下函数key参数中转换旧式比较函数
      • sorted
      • min
      • max
      • heapq.nlargest
      • heapq.nsmallest
      • itertools.groupby
    • key function:接收参数,返回可以用于排序的值
  • partial(func, *args, **kwargs):返回partial对象,其 调用时类似使用argskwargs调用func

  • partial.method(func, *args, **kwargs):适合类命名空间 中函数、描述器

  • update_wrapper(wrapper, wrapped, assigned=WRAPPER_ASSIGNMENTS, udpated=WRAPPER_UPDATES): 更新wrapper函数信息为wrapped函数信息

函数应用

  • reduce(func, iterable[, initializer]):使用func接受 两个参数,reduce处理iterable

函数装饰器

  • @lru_cache(maxsize=128, typed=False):缓存函数执行结果

    • 字典存储缓存:函数固定参数、关键字参数必须可哈希
    • 不同参数调用模式(如仅参数顺序不同)可能被视为不同 ,从而产生多个缓存项
    • 可以用于方便实现动态规划
  • @singledispatch:转换函数为单分派范型函数,实现python 的重载(接口多态)

    • single dispatch:单分派,基于单个参数类型分派的 范型函数分派形式
  • @wraps(wrapped, assigned=WRAPPER_ASSIGNMENTS, updated=WRAPPER_UPDATES): 等价于partial(update_wrapper, wrapped, assigned, updated)

类装饰器

  • @total_ordering:根据类中已定义比较方法实现剩余方法
    • 类必须实现__eq__、其他富比较方法中任意一种

operator

operator:提供与python内置运算符对应的高效率函数

  • 为向后兼容,保留双下划线版本函数名(同特殊方法名)

比较运算

  • lt(a,b)/__lt__(a,b)
  • le(a,b)
  • eq(a,b)
  • ne(a,b)
  • ge(a,b)
  • gt(a,b)

逻辑运算

  • not(obj)
  • truth(obj):等价于使用bool构造器
  • is_(a,b)
  • is_not(a,b)

数值运算

  • add(a,b)
  • sub(a,b)
  • mul(a,b)
  • div(a,b)
  • pow(a,b)
  • mod(a,b)
  • floordiv(a,b)
  • truediv(a,b)
  • matmul(a,b)
  • abs(obj)
  • neg(obj)
  • pos(obj)

在位赋值

  • 在位运算对可变数据类型才会更新参数,否则只返回结果
  • iadd(a,b):等价于a += b
  • isub(a,b)
  • imul(a,b)
  • idiv(a,b)
  • ipow(a,b)
  • imod(a,b)
  • ifloordiv(a,b)
  • itruediv(a,b)
  • imatmul(a,b)

位运算

  • and_(a,b)
  • or_(a,b)
  • xor(a,b)
  • inv(obj)/invert(obj)
  • lshift(a,b)
  • shift(a,b)

在位运算

  • iand(a,b)
  • ior(a,b)
  • ixor(a,b)

索引

  • index(a)

序列运算

  • concat(a,b)
  • contains(a,b)
  • countOf(a,b)
  • delitem(a,b)
  • getitem(a,b)
  • indexOf(a,b)
  • setitem(a,b,c)
  • length_hint(obj, default=0)

访问函数

  • attrgetter(attr)/attrgetter(*attrs):返回函数,函数 返回值为参数属性attr
  • itemgetter(item)/itemgetter(*items):类似
  • methodcaller(name[, args...]):类似

Python数据类型

collections

array

headq

bisect

weakref

datetime

calender

types

copy

pprint

reprlib

enum

Python标准库

综述

  • 内置类型相关参见cs_python/py3ref/dm_basics

常用参数说明

Functional Programming

  • key=None/callable

    • 含义:key函数,接受一个参数,返回用于排序的值
    • 默认:None,不处理
  • iterable=iterable

    • 含义:可迭代对象

Py3std Readme

常用参数说明

  • 函数书写声明同Python全局说明
  • 以下常用参数如不特殊注明,按照此解释

Common

Stream

  • mode="r"/"w"/"a"/"+"/"t"/"b"

    • 含义:文件/管道打开模式
      • t:文本,可省略
      • b:二进制
      • r:读,默认
      • w:写
      • a:追加,大部分支持
      • +:更新模式,同时允许读写
        • r+:文件已存在,读、写
        • w+:清除之前内容,读、写
        • a+:读、追加写
    • 默认:rt/r
  • buffering/bufsize = -1/0/1/int

    • 含义:缓冲模式
      • 0:不缓冲,只在二进制模式中被运行
      • 1:逐行缓冲,只在文本模式中有效
      • 其他正整数:指定固定大小chunk缓冲的大小
      • -1:全缓冲
        • 普通二进制、文本,缓冲chunks大小启发式确定, io.DEFAULT_BUFFER_SIZE查询
        • 终端交互流(.isatty()),逐行缓冲
    • 默认:-1
  • encoding(str)

    • 含义:文件编码
      • utf-8
      • utf-16
      • utf-16-le
      • utf-16-be
      • utf-32
      • gbxxxx
      • 待续
    • 缺省:使用locale.getpreferedencoding()返回值

Threading/Processing

  • block/blocking = True/False

    • 含义:是否阻塞
    • 默认:大部分为True(阻塞)
    • 其他
      • 对返回值不是bool类型的函数,非阻塞时若无法进行 操作,往往会raise Exception
  • timeout = None/num

    • 含义:延迟时间,单位一般是秒
    • 默认:None,无限时间
    • 其他
      • block=False时,一般timeout参数设置无效
  • fn/func/callable(callable)

    • 含义:可调用对象
    • 默认:一般默认值
    • 其他
      • 实参可以是任何可调用对象
        • 函数
        • 方法
        • 可调用对象
  • args = ()/None/tuple/list/*args(arg_1, ...)

    • 含义:函数位置参数
    • 默认:()/None,无参数
  • kwrags/kwds = {}/None/dict/**kwargs(kwarg_1=v1, ...)

    • 含义:函数关键字参数
    • 默认:{}/None,无参数
  • callback=callable

    • 含义:回调函数
      • 异步线程、进程调用才会有该参数
      • 回调函数接收进程/线程返回值作为参数
      • 回调函数最好有返回值,否则会阻塞进程、线程池
    • 默认:None,无参数
  • chunksize=None/1/int

    • 含义:一次传递给子进程的迭代器元素数量
      • 常在进程池迭代调度函数中,较大的chunksize 能减少进程间通信消耗,但会降低灵活性
      • 线程调度相关函数该参数被忽略
    • 默认:None/1,一次传递一个元素
  • daemon=False/None/True

    • 含义:是否为守护进程/线程
      • 默认情况下,主进程(线程)会等待子进程、线程退出 后退出
      • 主进程(线程)不等待守护进程、线程退出后再退出
      • 注意:主进程退出之前,守护进程、线程会自动终止

Python命令行参数

  • -c:解释执行语句
  • -u:强制输入、输出流无缓冲,直接输入,默认全缓冲