micropython
micropython 模块用于访问和控制 BiBoPython 内部机制。
函数
micropython.const(expr)
用于声明表达式为常量,以便编译器优化。用法如下:
from micropython import const
CONST_X = const(123)
CONST_Y = const(2 * CONST_X + 1)
以这种方式声明的常量仍可作为全局变量,在声明模块外部访问。若常量以下划线开头,则会被隐藏——不可作为全局变量访问,执行时也不占用内存。
micropython.opt_level([level])
若给定 level,则设置后续脚本编译的优化级别,并返回 None;否则返回当前优化级别。
优化级别控制以下编译特性:
- 断言(Assertions):级别 0 时启用断言并编译进字节码;级别 1 及以上不编译断言。
- 内置
__debug__变量:级别 0 时展开为True;级别 1 及以上展开为False。 - 源码行号:级别 0、1、2 时与字节码一起存储行号,以便异常报告发生位置;级别 3 及以上不存储行号。
默认优化级别通常为 0。
micropython.mem_info([verbose])
打印当前内存使用信息。若给定 verbose 参数,则输出额外信息。
micropython.qstr_info([verbose])
打印当前已驻留字符串的信息。若给定 verbose 参数,则输出额外信息。
包括已驻留字符串的数量及其占用的 RAM。在详细模式下会打印所有 RAM 驻留字符串的名称。
micropython.stack_use()
返回表示当前栈使用量的整数。绝对值本身意义不大,更适合用于比较不同位置的栈使用差异。
micropython.heap_lock()
micropython.heap_unlock()
锁定或解锁堆。锁定后无法进行内存分配,任何堆分配尝试都会引发 MemoryError。
micropython.kbd_intr(chr)
设置将引发 KeyboardInterrupt 异常的字符。脚本执行期间默认设为 3,对应 Ctrl-C。传入 -1 可禁用 Ctrl-C 捕获,传入 3 可恢复。
此函数可用于阻止在通常用于 REPL 的输入字符流中捕获 Ctrl-C,当该流用于其他用途时尤其有用。