usys – 系统相关函数

详见 sys

函数

usys.exit(retval=0, /)

使用给定的退出代码终止当前程序。该函数出现 SystemExit 异常。若给定一个参数,该值作为 SystemExit 的参数。

usys.atexit(func)

Register func to be called upon termination. func must be a callable that takes no arguments, or None to disable the call. The atexit function will return the previous value set by this function, which is initially None.

与CPython的差异

This function is a MicroPython extension intended to provide similar functionality to the atexit module in CPython.

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

打印异常,并返回到一个类似 file 的对象文件(或默认的 usys.stdout )。

与CPython的差异

该函数出现在CPython的 traceback 模块中。 与 traceback.print_exception() 不同, 该函数只接受异常值,而不接受异常类型、异常值和回溯对象;文件参数应为位置参数; 不支持更多参数。与CPython兼容的 traceback 模块可在 micropython-lib 中找到。

常量

usys.argv

当前程序由一个可变的参数列表开始。

usys.byteorder

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

usys.implementation

具有有关当前Python实现的信息的对象。对于MicroPython而言,具有以下属性;

  • name - string “micropython”

  • version - tuple (major, minor, micro), e.g. (1, 7, 0)

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

与CPython的差异

CPython为此对象提供更多属性,但是实际有用的最小值是在MicroPython中实现的。

usys.maxsize

一个本地整数类型可在当前平台上保留的最大值,或MicroPython 整数类型所能表示的最大值,若其小于平台最大值(此即Micropython端口在没有长整数支持下的情况)。

这个属性对于探测平台的位度非常有用(32位vs 64位)。建议不要直接将该属性与某个值进行比较,而是计算其中的比特数;

bits = 0
v = usys.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.
usys.modules

加载模块库。在某些端口上,可能不包括内置模块。

usys.path

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

usys.platform

MicroPython运行的平台。对于OS/RTOS端口而言,通常为OS的标识符,例如: "linux" 。 对于裸金属板而言,通常是插件的标识符,例如:原始参考板即对应 "pyboard" 。可用于将板与板区分开来。 若您需要检查您的程序是否在MicroPython(vs其他Python实现)上运行,请使用 usys.implementation

usys.stderr

标准错误 stream

usys.stdin

标准输入 stream

usys.stdout

标准输出 stream

usys.version

该实现所遵照的Python语言版本,字符串形式。

usys.version_info

该实现所遵照的Python语言版本,整数元组形式。

与CPython的差异

Only the first three version numbers (major, minor, micro) are supported and they can be referenced only by index, not by name.