0

micropython可以使用很多pyboard模块。目前我只知道这些模块的真正实现是用C完成的。我的问题是:Python模块和C实现之间的关系是如何映射的?比如我们可以使用import pyb,pyb Python文件在哪里呢?比如我们可以使用from pyb import LED和调用强度函数,Python LED 类定义在哪里?它的强度函数的定义在哪里?

4

1 回答 1

1

找出这一点的最简单方法是克隆源代码,然后开始使用您喜欢的任何文本/文件搜索工具四处寻找。搜索文件/文本“pyb”和/或“LED”。然后你会发现例如modpyb.c它定义了 pyb 模块(在 C 中,而不是在 Python 中)。在那里你可以看到模块的全局字典有一个条目

{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pyb_led_type) }

这是 MicroPython 的行话,说‘有一个东西叫 LED,它的类型是 pyb_led_type。后者是 LED 类的 C 代码,可在led.c中找到,包括led_obj_intensity函数。

于 2018-01-31T20:24:51.260 回答