Python 公共代码配置

有些函数或变量是多个积木共用的,我们将其称为公共函数或变量。我们可以通过配置 Python 公共代码来统一定义和修改这些函数或变量。

配置 Python 公共代码的方法有多种,本文将介绍其中三种:

在帽子积木中添加

转码的积木通常都会拼接在“当 xx 启动时”的帽子积木下面,因此我们可以将公共代码添加在帽子积木的“lib”中。

转码后如下所示:

优点:可以在拼接积木的时候实时看到转码效果
缺点:代码较分散且依赖特定的积木

修改转码模板

在配置扩展或设备时,选择“转码设置”页签,将支持的转码语言设置为 Python,然后修改“Python 转码模板”。

将 add 函数放在 “### code #$$” 前面,如下所示:

# generated by mBlock5 for <product>
# codes make you happy


### import #$$
### lib #$$
###
# initialize variables
###{
  (this.$ALL_VARIABLES.length === 0) ? undefined : this.$ALL_VARIABLES.map(n => n + ' = 0').join('\\n')
}#$$
#$$
def add(a, b):
    print('%d+%d=%d'%(a,b,a+b))
### code #$$
###
while True:
  # every tick
  ### loop #$$
#$$
优点:可以在拼接积木的时候实时看到转码效果
缺点:如果公共代码太多,会影响转码模板的直观性、增加维护的难度。

在中间件中定义

在配置扩展时,选择“基础信息”页签,然后配置中间件。

在配置设备时,选择“连接配置”页签,然后配置中间件。

以配置设备的中间件为例:

1、点击 “+” 添加一个中间件。

2、设置中间件的名称。

3、勾选自定义。

4、编辑代码。

这里的代码就是所有积木转码后的字符串,我们可以在这里将需要的公共代码插入进去,然后将代码返回,如下所示:


/**
 * Custom Upload Middleware
 * 
 * @param {AppContext} app
 * @param {DeviceContext} device
 * @param {String} code
 * @param {Object} params
 * @param {Function} logH
 * @param {Function} progessH
 */
(app, device, code, params, logH, progessH) => {
    // process code here
    code += 'def add(a,b):
    print('%d+%d=%d'%(a,b,a+b))\n';
    return code;
}
优点:不想其他人直接在转码区看到的代码可以写在中间件里。
缺点:在转码区无法直观看到转码效果,只有在点击“上传”的时候才会生效。

总结

方法一:上手容易,无需额外学习。推荐指数:★★★★★

方法二:上手容易,但是代码量太大会影响模板的维护。推荐指数:★★

方法三:上手有一定难度,而且不直观,比较偏骇客。推荐指数: ★

results matching ""

    No results matching ""