builtins --- 内置函数和异常¶
这里描述了所有的内置函数和异常。它们也可以通过 builtins 模块访问。
函数和类型¶
- abs(x: Any) Any¶
返回一个数的绝对值。参数可以是整数、浮点数,或任何实现了
__abs__()的对象。
- class bool(x: Any = False)¶
返回一个布尔值,即
True或False之一。x 使用标准的真值测试过程进行转换。
- class bytearray(source: int | str | Iterable[int] | bytes = b'', encoding: str = 'utf-8', errors: str = 'strict')¶
范围在 0-255 之间的整数构成的可变序列。构造规则与
bytes相同:可以由整数(创建一个该大小的零填充缓冲区)、整数的可迭代对象、带encoding的字符串,或任何支持缓冲协议的对象构造。支持标准的序列操作,以及原地修改。- classmethod fromhex(string: str) bytearray¶
从十六进制数字对组成的字符串构造一个
bytearray。数字对之间的空白会被跳过;非十六进制字符会引发ValueError。
- center(width: int, fillbyte: bytes) bytes¶
返回内容居中放置于长度为 width 的序列中的副本,并用 fillbyte 填充。与 CPython 不同,fillbyte 是必需的。当 width 不大于当前长度时,原样返回数据。
- endswith(suffix: bytes, start: int = 0, end: int = -1) bool¶
如果内容以 suffix 结尾,则返回
True。与 CPython 不同,suffix 不能是值的元组。
- extend(iterable: Iterable[int]) None¶
将 iterable 中的所有项追加到 bytearray 的末尾。作为对 CPython 的扩展,可以使用任何支持缓冲协议的对象。
- replace(old: bytes, new: bytes, count: int = -1) bytes¶
返回将所有出现的 old 替换为 new 后的副本。如果给出 count,则只替换前 count 次出现。
- rsplit(sep: bytes | None = None, maxsplit: int = -1) list¶
在 sep 出现处将内容分割为一个片段列表,从右侧开始最多进行 maxsplit 次分割。如果 sep 为
None或省略,则按连续的 ASCII 空白字符分割。
- split(sep: bytes | None = None, maxsplit: int = -1) list¶
在 sep 出现处将内容分割为一个片段列表。如果 sep 为
None或省略,则按连续的 ASCII 空白字符分割。
- startswith(prefix: bytes, start: int = 0, end: int = -1) bool¶
如果内容以 prefix 开头,则返回
True。与 CPython 不同,prefix 不能是元组,且 end 被接受但被忽略。
- class bytes(source: int | str | Iterable[int] = b'', encoding: str = 'utf-8', errors: str = 'strict')¶
范围在 0-255 之间的整数构成的不可变序列。可由整数(零填充缓冲区)、整数的可迭代对象、带
encoding的字符串,或任何支持缓冲协议的对象创建。字节字面量使用b'...'语法。- classmethod fromhex(string: str) bytes¶
从十六进制数字对组成的字符串构造一个
bytes对象。数字对之间的空白会被跳过;非十六进制字符会引发ValueError。
- center(width: int, fillbyte: bytes) bytes¶
返回居中放置于长度为 width 的序列中的副本,并用 fillbyte(一个给出填充字节的长度为 1 的 bytes)填充。与 CPython 不同,fillbyte 是必需的。当 width 不大于其长度时,原样返回原对象。
- decode(encoding: str = 'utf-8') str¶
返回从字节解码得到的
str。在 MicroPython 中,encoding 参数被接受但实际上被忽略(字节会被重新解释为 UTF-8)。
- endswith(suffix: bytes, start: int = 0, end: int = -1) bool¶
如果字节以 suffix 结尾,则返回
True。与 CPython 不同,suffix 不能是要尝试的值的元组。
- find(sub: bytes, start: int = 0, end: int = -1) int¶
返回子序列 sub 在切片
[start:end]中被找到的最小索引,若未找到则返回-1。
- replace(old: bytes, new: bytes, count: int = -1) bytes¶
返回将所有出现的 old 替换为 new 后的副本。如果给出 count,则只替换前 count 次出现。
- rsplit(sep: bytes | None = None, maxsplit: int = -1) list¶
在 sep 出现处将内容分割为一个片段列表,从右侧开始最多进行 maxsplit 次分割。如果 sep 为
None或省略,则按连续的 ASCII 空白字符分割。
- split(sep: bytes | None = None, maxsplit: int = -1) list¶
在 sep 出现处将内容分割为一个片段列表。如果 sep 为
None或省略,则按连续的 ASCII 空白字符分割。
- startswith(prefix: bytes, start: int = 0, end: int = -1) bool¶
如果字节以 prefix 开头,则返回
True。与 CPython 不同,prefix 不能是元组,且 end 被接受但被忽略。
- classmethod(func: Callable[..., Any]) classmethod¶
将一个方法转换为类方法。通常用作装饰器。
- compile(source: str | bytes, filename: str, mode: str) Any¶
将 source 编译为可由
exec()或eval()执行的代码对象。mode 是"exec"、"eval"或"single"之一。
- class dict(*args, **kwargs)¶
创建一个新字典。等价于 CPython 的
dict。- classmethod fromkeys(iterable: Iterable[Any], value: Any = None) dict¶
创建一个新字典,其键取自 iterable,每个键都映射到 value(默认为
None)。在类型上调用,例如dict.fromkeys(...)。
- get(key: Any, default: Any = None) Any¶
如果 key 在字典中,则返回其对应的值,否则返回 default(其本身默认为
None,因此这绝不会引发KeyError)。字典不会被修改。
- pop(key: Any, default: Any = None) Any¶
从字典中移除 key 并返回其值。如果 key 不存在,且提供了 default,则返回 default;否则引发
KeyError。如果字典是固定的,则引发TypeError。
- popitem() tuple¶
移除并返回任意一个
(key, value)对作为二元组。对于普通的dict,所选的对是不确定的;对于OrderedDict,则移除最后插入的对(LIFO)。如果字典为空则引发KeyError,如果字典是固定的则引发TypeError。
- setdefault(key: Any, default: Any = None) Any¶
如果 key 在字典中,则返回其值。否则以 default(默认为
None)为值插入 key 并返回该值。如果字典是固定的,则引发TypeError。
- update(*args: Any, **kwargs: Any) None¶
就地更新字典。最多接受一个位置参数:可以是另一个字典,或一个由两元素
(key, value)对组成的可迭代对象(每个都必须恰好产生两项,否则引发ValueError)。然后将关键字参数作为以字符串为键的条目添加进来。已有的键会被覆盖。如果字典是固定的,则引发TypeError。
- enumerate(iterable: Iterable[Any], start: int = 0) Iterator[tuple]¶
返回一个 enumerate 对象,从 iterable 产生
(index, value)对,索引从 start 开始。
- eval(expression: str | bytes, globals: dict | None = None, locals: dict | None = None) Any¶
对以字符串(或已编译的代码对象)形式给出的 Python 表达式求值,并返回结果。
- exec(object: str | bytes, globals: dict | None = None, locals: dict | None = None) None¶
动态执行以字符串或已编译的代码对象形式提供的 Python 代码。
- filter(function: Callable[[Any], Any] | None, iterable: Iterable[Any]) Iterator[Any]¶
从 iterable 中 function 返回真值的那些元素构造一个迭代器。如果 function 为
None,则假定为恒等函数。
- class frozenset(iterable: Iterable[Any] = ())¶
返回一个新的 frozenset 对象,可选地包含取自 iterable 的元素。
frozenset是set的不可变、可哈希变体。- difference(*others: Iterable[Any]) frozenset¶
返回一个新的 frozenset,包含该 frozenset 中不在任何 others 中的元素。每个参数都可以是任意可迭代对象。
- intersection(other: Iterable[Any]) frozenset¶
返回一个新的 frozenset,包含该 frozenset 与 other 共有的元素。在 MicroPython 中只接受单个 other 参数(CPython 接受多个)。
- getattr(obj: Any, name: str, default: Any = None) Any¶
返回 obj 中名为该名称的属性的值。如果该属性不存在,则在提供了 default 时返回 default,否则引发
AttributeError。
- class int(x: str | bytes | int | float = 0, base: int = 10)¶
- isinstance(obj: Any, classinfo: type | tuple) bool¶
如果 obj 是 classinfo 或其任意子类的实例,则返回
True。classinfo 可以是一个类或一个类的元组。
- iter(obj: Any, sentinel: Any = None) Iterator[Any]¶
返回一个迭代器对象。带一个参数时,obj 必须支持迭代协议。带两个参数时,obj 必须可调用,且当它返回 sentinel 时迭代停止。
- class list(iterable: Iterable[Any] = ())¶
构建一个新列表,可选地由 iterable 中的项填充。
- extend(iterable: Iterable[Any]) None¶
将 iterable 中的所有项追加到列表的末尾。如果 iterable 本身是一个列表,则直接复制其各项;否则对其进行迭代。
- index(value: Any, start: int = 0, stop: int = -1) int¶
返回第一个等于 value 的元素的索引,在切片
[start:stop]中搜索。如果 value 不存在,则引发ValueError。
- insert(index: int, object: Any) None¶
在位置 index 之前插入 object。负的 index 会被解释为相对于列表末尾,并且索引会被钳制到有效范围内(因此超出任一端的值会在开头或末尾插入)。
- pop(index: int = -1) Any¶
移除并返回位于 index 处的项(默认为最后一项)。如果列表为空或 index 超出范围,则引发
IndexError。
- remove(value: Any) None¶
移除第一个等于 value 的元素。如果 value 不存在,则引发
ValueError。
- map(function: Callable[..., Any], *iterables: Iterable[Any]) Iterator[Any]¶
返回一个迭代器,它将 function 应用于 iterables 的每一项,并产生其结果。
- max(*args: Any, key: Callable[[Any], Any] | None = None, default: Any = None) Any¶
若带单个可迭代对象参数,则返回其中最大的项。若带两个或更多参数,则返回最大的参数。
- class memoryview(obj: Any)¶
创建一个引用 obj 的 memoryview,obj 必须支持缓冲协议(例如
bytes、bytearray、array.array)。它允许对底层内存进行零拷贝访问和切片;对 memoryview 切片返回的是另一个 memoryview 而不是副本。
- min(*args: Any, key: Callable[[Any], Any] | None = None, default: Any = None) Any¶
若带单个可迭代对象参数,则返回其中最小的项。若带两个或更多参数,则返回最小的参数。
- next(iterator: Iterator[Any], default: Any = None) Any¶
从 iterator 中获取下一项。如果给出 default 且迭代器已耗尽,则返回 default 而不引发
StopIteration。
- class object¶
返回一个新的无特征对象。
object是所有类的基类。
- pow(base: Any, exp: Any, mod: Any | None = None) Any¶
返回 base 的 exp 次幂。如果给出 mod,则返回
base ** exp % mod(比显式形式计算得更高效)。
- print(*objects: Any, sep: str = ' ', end: str = '\n', file: Any = None) None¶
将 objects 打印到文本流 file,各项之间以 sep 分隔,并以 end 结尾。
- property(fget: Callable[[Any], Any] | None = None, fset: Callable[[Any, Any], None] | None = None, fdel: Callable[[Any], None] | None = None, doc: str | None = None) property¶
返回一个 property 属性。通常用作装饰器,以在类上定义托管属性。
- range(*args: int) range¶
返回一个不可变的整数序列。以
range(stop)、range(start, stop)或range(start, stop, step)形式调用。
- reversed(seq: Any) Iterator[Any]¶
返回给定序列的值的反向迭代器。
- round(number: Any, ndigits: int | None = None) Any¶
返回 number 四舍五入到 ndigits 位小数的结果。如果省略 ndigits,则返回最接近的整数。
- class set(iterable: Iterable[Any] = ())¶
返回一个新的 set 对象,可选地包含取自 iterable 的元素。
- intersection(other: Iterable[Any]) set¶
返回一个新集合,包含该集合与 other 共有的元素。在 MicroPython 中只接受单个 other 参数(CPython 接受多个)。
- intersection_update(other: Iterable[Any]) None¶
更新集合,只保留同时也在 other 中找到的元素(就地操作)。在 MicroPython 中只接受单个 other 参数。
- symmetric_difference(other: Iterable[Any]) set¶
返回一个新集合,包含仅在该集合或仅在 other 中、但不同时在两者中的元素。在 MicroPython 中只接受单个 other 参数。
- symmetric_difference_update(other: Iterable[Any]) None¶
更新集合,只保留仅在该集合或仅在 other 中、但不同时在两者中的元素(就地操作)。在 MicroPython 中只接受单个 other 参数。
- class slice¶
slice 内置是切片对象所属的类型。
- sorted(iterable: Iterable[Any], key: Callable[[Any], Any] | None = None, reverse: bool = False) list¶
由 iterable 中的各项返回一个新的已排序列表。
- staticmethod(func: Callable[..., Any]) staticmethod¶
将一个方法转换为静态方法。通常用作装饰器。
- class str(object: Any = '', encoding: str = 'utf-8', errors: str = 'strict')¶
返回 object 的字符串版本。如果 object 是类字节对象,则 encoding 和 errors 参数控制解码方式。
- center(width: int) str¶
返回字符串居中放置于长度为 width 的字段中的副本,并用空格填充。在 MicroPython 中只使用空格作为填充字符(没有填充字符参数),且当 width 不大于其长度时原样返回原字符串。
- count(sub: str, start: int = 0, end: int = -1) int¶
返回 sub 在切片
[start:end]中非重叠出现的次数。空的 sub 会对字符之间的每个间隙计数。
- encode(encoding: str = 'utf-8', errors: str = 'strict') bytes¶
返回一个对该字符串进行编码的
bytes对象。MicroPython 实际上忽略这些参数并使用 UTF-8;errors 被接受但不起作用。等价于bytes(s, "utf-8")。
- endswith(suffix: str | tuple, start: int = 0, end: int = -1) bool¶
如果字符串以给定的 suffix 结尾,则返回
True,suffix 可以是单个字符串或要尝试的字符串元组。可选的 start 和 end 将比较限制在切片[start:end]内。
- find(sub: str, start: int = 0, end: int = -1) int¶
返回子串 sub 在字符串切片
[start:end]中被找到的最小索引,若未找到则返回-1。
- format(*args: Any, **kwargs: Any) str¶
执行字符串格式化操作,将由花括号
{}分隔的替换字段替换为来自 args 和 kwargs 的值。支持标准的格式规范迷你语言。
- index(sub: str, start: int = 0, end: int = -1) int¶
与
find()类似,但当在切片[start:end]中未找到子串 sub 时引发ValueError。
- lstrip(chars: str | None = None) str¶
返回去除了开头字符的字符串副本。如果省略 chars 或其为
None,则去除空白字符;否则将 chars 视为要去除的字符集合。
- partition(sep: str) tuple¶
在 sep 首次出现处分割字符串,并返回一个三元组
(head, sep, tail)。如果未找到 sep,则返回(self, "", "")。空的 sep 会引发ValueError。
- replace(old: str, new: str, count: int = -1) str¶
返回所有出现的子串 old 都被替换为 new 后的字符串副本。如果给出非负的 count,则只替换前 count 次出现。
- rfind(sub: str, start: int = 0, end: int = -1) int¶
返回子串 sub 在字符串切片
[start:end]中被找到的最大索引,若未找到则返回-1。
- rindex(sub: str, start: int = 0, end: int = -1) int¶
与
rfind()类似,但当在切片[start:end]中未找到子串 sub 时引发ValueError。
- rpartition(sep: str) tuple¶
在 sep 最后一次出现处分割字符串,并返回一个三元组
(head, sep, tail)。如果未找到 sep,则返回("", "", self)。空的 sep 会引发ValueError。
- rsplit(sep: str | None = None, maxsplit: int = -1) list¶
以 sep 作为分隔符从右侧将字符串分割为子串列表,最多进行 maxsplit 次分割。在没有 maxsplit(或为负值)时,其行为与
split()完全相同;在 MicroPython 中,以非负 n 调用rsplit(None, n)会引发NotImplementedError。
- rstrip(chars: str | None = None) str¶
返回去除了结尾字符的字符串副本。如果省略 chars 或其为
None,则去除空白字符;否则将 chars 视为要去除的字符集合。
- split(sep: str | None = None, maxsplit: int = -1) list¶
以 sep 作为分隔符将字符串分割为子串列表,最多进行 maxsplit 次分割。如果省略 sep 或其为
None,则按连续的空白字符分割并忽略开头的空白;否则空的 sep 会引发ValueError。
- startswith(prefix: str | tuple, start: int = 0, end: int = -1) bool¶
如果字符串以给定的 prefix 开头,则返回
True,prefix 可以是单个字符串或要尝试的字符串元组。可选的 start 和 end 将比较限制在切片[start:end]内。
- sum(iterable: Iterable[Any], start: Any = 0) Any¶
从左到右对 start 和 iterable 中的各项求和,并返回总和。
- super(type: type | None = None, obj_or_type: Any | None = None) Any¶
返回一个代理对象,它将方法调用委托给 type 的父类或兄弟类。这对于访问在类中被重写的继承方法很有用。
异常¶
- exception AssertionError¶
当
assert语句失败时引发。
- exception AttributeError¶
当属性引用或赋值失败时引发。
- exception Exception¶
所有非系统退出异常的公共基类。
- exception ImportError¶
当
import语句未能找到模块定义时引发。
- exception IndexError¶
当序列下标超出范围时引发。
- exception KeyError¶
当映射(字典)的键在现有键集合中找不到时引发。
- exception MemoryError¶
当某项操作耗尽内存时引发。
- exception NameError¶
当找不到局部或全局名称时引发。
- exception NotImplementedError¶
当调用抽象方法或未实现的功能时引发。
- exception OSError¶
当系统函数返回与系统相关的错误时引发。
- exception RuntimeError¶
当检测到不属于任何其他类别的错误时引发。
- exception SyntaxError¶
当解析器遇到语法错误时引发。
- exception SystemExit¶
由
sys.exit()引发,以请求解释器终止。与大多数异常不同,它在未被捕获时不会产生回溯。在 OpenMV Cam 上,未处理的
SystemExit当前会导致 MicroPython 的 软复位。
- exception TypeError¶
当对不适当类型的对象应用某项操作或函数时引发。
- exception ValueError¶
当内置操作或函数接收到类型正确但值不适当的参数时引发。
- exception ZeroDivisionError¶
当除法或取模运算的第二个参数为零时引发。