sys – 系统特定功能

该模块实现了相应 CPython 模块的 一个子集,如下所述。有关更多信息,请参阅原始 CPython 文档: sys.

职能

sys.exit(retval=0, /)

使用给定的退出代码终止当前程序。在底层,此函数作为SystemExit异常引发。如果给出了一个参数,它的值作为 的参数给出SystemExit

sys.atexit(func)

注册func在终止时调用。 func必须是一个不带参数的可调用对象,或者None禁用调用。该atexit 函数将返回此函数设置的先前值,最初为 None

与 CPython 的区别

该函数是一个 MicroPython 扩展,旨在为 atexitCPython 中的模块提供类似的功能。

sys.print_exception(exc, file=sys.stdout, /)

打印异常并回溯到类似文件的目标文件(或 sys.stdout 默认情况下)。

与 CPython 的区别

这是出现 traceback 在 CPython 模块中的函数的简化版本 。与 不同的是 traceback.print_exception(),这个函数只接受异常值而不是异常类型、异常值和回溯对象;文件参数应该是位置;不支持进一步的论点。CPython 兼容的 traceback 模块可以在micropython-lib.

常数

sys.argv

当前程序开始时使用的可变参数列表。

sys.byteorder

系统的字节顺序("little""big")。

sys.implementation

包含有关当前 Python 实现的信息的对象。对于 MicroPython,它具有以下属性:

  • 版本- 元组(主要、次要、微),例如 (1, 7, 0)

该对象是将 MicroPython 与其他 Python 实现区分开来的推荐方式(请注意,它可能仍然不存在于极少的端口中)。

与 CPython 的区别

CPython 为这个对象规定了更多的属性,但实际有用的最低限度是在 MicroPython 中实现的。

sys.maxsize

本机整数类型可以在当前平台上保留的最大值,或者 MicroPython 整数类型可表示的最大值,如果它小于平台最大值(对于没有 long int 支持的 MicroPython 端口就是这种情况)。

此属性可用于检测平台的“位数”(32 位与 64 位等)。建议不要直接将此属性与某个值进行比较,而是计算其中的位数:

bits = 0
v = sys.maxsize
while v:
    bits += 1
    v >>= 1
if bits > 32:
    # 64-bit (or more) platform
    ...
else:
    # 32-bit (or less) platform
    # Note that on 32-bit platform, value of bits may be less than 32
    # (e.g. 31) due to peculiarities described above, so use "> 16",
    # "> 32", "> 64" style of comparisons.
sys.modules

加载模块的字典。在某些端口上,它可能不包含内置模块。

sys.path

用于搜索导入模块的可变目录列表。

sys.platform

MicroPython 运行的平台。对于 OS/RTOS 端口,这通常是 OS 的标识符,例如"linux" 对于裸机端口,它是板的标识符,例如"pyboard"用于原始 MicroPython 参考板。因此,它可用于区分一块板与另一块板。如果您需要检查您的程序是否在 MicroPython 上运行(与其他 Python 实现相比),请sys.implementation 改用。

sys.stderr

标准错误 stream.

sys.stdin

标准输入 stream.

sys.stdout

标准输出 stream.

sys.version

此实现符合的 Python 语言版本,作为字符串。

sys.version_info

此实现符合的 Python 语言版本,作为整数元组。

与 CPython 的区别

仅支持前三个版本号(major、minor、micro),并且只能通过索引而不是名称来引用它们。