首页 > 解决方案 > 如何在以后的参数中引用函数调用的先前参数?

问题描述

这是在 micropython

我正在创建一个 API 来控制一些硬件。该 API 将在 C 中实现,并在 micropython 中提供接口。

我的 API 的一个示例是:

device.set(curr_chan.BipolarRange, curr_chan.BipolarRange.state.ON)

我希望能够实现相同的功能,但通过以某种方式隐式引用第一个参数来缩短第二条路径:

device.set(curr_chan.BipolarRange, <first arg?>.state.ON)

有没有办法做到这一点?

现在做这样的事情的唯一方法

device.set(curr_chan.BipolarRange.state.ON)

然后在ONC 对象和stateC 对象上放置一个向上指向的 C 指针,这样我就知道curr_chan引用了哪个条目。

micropython 运行时——我假设是 CPython 运行时——不会将整个对象“树”保留在内存中供开发人员使用。

标签: pythonmicropython

解决方案


将所需属性的名称作为第二个参数传递。调用getattr(或PObject_GetAttr重复获取 -.分隔字符串的每个元素:

device.set(curr_chan.BipolarRange, 'state.ON')

推荐阅读