惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
美团技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
月光博客
月光博客
J
Java Code Geeks
Jina AI
Jina AI
罗磊的独立博客
宝玉的分享
宝玉的分享
S
SegmentFault 最新的问题
D
DataBreaches.Net
博客园 - 叶小钗
腾讯CDC
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Last Week in AI
Last Week in AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Google DeepMind News
Google DeepMind News
阮一峰的网络日志
阮一峰的网络日志
B
Blog
V
Visual Studio Blog
雷峰网
雷峰网
博客园 - 【当耐特】
Apple Machine Learning Research
Apple Machine Learning Research
Engineering at Meta
Engineering at Meta
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报

夜行人

回家路上 第一期的直播演示项目 震动检测器 正能量 在线参观CodeLab Neverland 发布 CodeLab Adapter 3.3.1 DynamicTable 之 纸糊方向盘 CodeLab DynamicTable: 一个可实施的技术方案 CodeLab Insight 发布 Alpha 版 情人节 Home Assistant 周报 && IoT 周报 (02) Joplin: 关注隐私的 Evernote 开源替代软件 浏览器的未来与 Web 传感器 Home Assistant 周报 && IoT 周报 (01) 百宝箱(01) 论自由 介绍 WebThings Home Assistant 周报 && iot 周报 (00) 百宝箱(00) 毛姆读书心得 传世之作 周末徒步 CodeLab Adapter ❤️ Jupyter/Python 航班 躲雨 夏令营途中 [译]思想--作为一种技术 The future of coding 美国之行 三门问题的程序模拟
Scratch3.0 Generate Python Code
种瓜 · 2019-02-18 · via 夜行人

文章目录

前言

有不少开发者来信问,如何从Scratch3.0的积木中生成Python代码。

我此前在wwj718/blockly_dev scratch-blocks_hello_world项目中给出了示例。

思路

思路很简单,Scratch3.0的积木(scratch-blocks)基于Blockly, 所以它拥有Blockly积木的功能,Blockly积木可以生成代码,官方文档在这里写得很清晰: Blockly Generating Code.

Python是Blockly原生支持的语言之一。对于许多通用的积木(如if/while/math)直接引用python_compressed.js 就可以直接生成相应代码,对于Scratch自定义的积木,则需要自定义相应的代码,自定义的策略,我在wwj718/blockly_dev scratch-blocks_hello_world里已经给出例子。

混用代码和积木是有风险的,你可能要为此引入很多"智能"的check来防止错误的产生,可能还会把用户搞得一头雾水。慎用。关于这部分的讨论,参考我之前的文章: 两种硬件编程风格的比较

Scratch3.0和Python同为少儿编程领域的重点,如何连接它们,彼此增强,CodeLab在codelab-adapter中做了不少有趣的探索:

参考