Micropython教程:库介绍

  • MicroPython 提供内置模块,可反映 Python 标准库的功能(例如os, time),以及MicroPython 特定的模块 (例如bluetoothmachine)。

  • 大多数 Python 标准库模块都实现了等效 Python 模块的功能子集,并在少数情况下提供了一些 MicroPython 特定的扩展(例如arrayos

  • 由于资源限制或其他限制,某些端口或固件版本可能不包含此处记录的所有功能。

  • 为了实现可扩展性,一些内置模块可以 从加载到设备文件系统上的Python 代码进行扩展。

本章介绍 MicroPython 内置的模块(函数和类库)。本文档通常旨在描述 MicroPython 项目中实现的所有模块和函数/类。但是,MicroPython 具有高度可配置性,并且每个移植到特定板/嵌入式系统可能仅包含可用 MicroPython 库的子集。

考虑到这一点,请注意,本文档中描述的模块(甚至整个模块)中的某些函数/类可能 在特定系统上的特定 MicroPython 版本中不可用。查找特定功能可用性/不可用性的一般信息的最佳位置是“一般信息”部分,其中包含与特定MicroPython 端口相关的信息。

在某些端口上,您可以通过在 REPL 输入以下内容来发现可用的内置

help('modules')

除了本文档中描述的内置库之外,还可以在micropython-lib中找到更多来自 Python 标准库的模块以及对它的进一步 MicroPython 扩展。

Python 标准库和微库

以下标准 Python 库已“微化”,以符合 MicroPython 的理念。它们提供该模块的核心功能,旨在成为标准 Python 库的直接替代品。

MicroPython 特定库

以下库中提供了特定于 MicroPython 实现的功能。

以下库为硬件组件提供驱动程序。

特定于移植的库

在某些情况下,以下特定于端口/板的库具有与machine库中类似的函数或类。在这种情况下,特定于端口的库中的条目会公开该平台独有的硬件功能。

要编写可移植代码,请使用模块中的函数和类machine。要访问特定于平台的硬件,请使用适当的库,例如 pybPyboard。

pyboard 专用库

以下库特定于 pyboard。

WiPy 特有的库

以下库和类特定于 WiPy。

ESP8266 和 ESP32 专用库

以下库特定于 ESP8266 和 ESP32。

RP2040 专用库

以下库特定于 RP2040,如在 Raspberry Pi Pico 中使用。

Zephyr 专用库

以下库特定于 Zephyr 端口。

扩展 Python 的内置库

通过在文件系统中提供同名模块,Python 代码能够扩展内置模块的子集。此扩展性适用于固件内置的以下 Python 标准库模块:,,,,,,,,,,,,,,,,,,,,,,,, 以及MicroPython特定模块。array所有其他内置模块都无法 从文件系统扩展。binasciicollectionserrnogziphashlibheapqiojsonosplatformrandomreselectsocketsslstructtime zlibmachine

这允许用户提供内置库的扩展实现(可能提供额外的 CPython 兼容性或缺失的功能)。这在micropython-lib中被广泛使用,有关更多信息,请参阅包管理。文件系统模块通常会对内置模块进行通配符导入,以便从内置模块继承所有全局变量(类、函数和变量)。

在 MicroPython v1.21.0 及更高版本中,为了防止文件系统模块导入自身,它可以通过在导入期间临时清除来强制导入内置模块sys.path。例如,要从 timePython 扩展模块,文件系统上命名的文件time.py将执行以下操作:

_path = sys.path
sys.path = ()
try:
  from time import *
finally:
  sys.path = _path
  del _path

def extra_method():
  pass

结果是time.py包含内置time 模块的所有全局变量,但添加了extra_method

u在早期版本的 MicroPython 中,您可以通过在名称开头附加 来强制导入内置模块。例如, 而不是。例如,在文件系统上可能看起来像:import utimeimport timetime.py

from utime import *

def extra_method():
  pass

这种方式仍然受支持,但sys.path现在首选上述方法,因为u在 MicroPython 的未来版本中,-prefix 将从内置模块的名称中删除。

除非特别需要强制使用内置模块,否则代码应该始终使用 而不是import module import umodule

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值