MicroPython 和 Python 都是一类 Python 的动态语言解释器。

若是在系统里安装了 Python 解释器,例如在 Windows 或者 Linux 命令行输入 python,进入 python 解释器的命令行模式即可输入运行查看效果。

>>> print('Hello World!')

Hello World!

动态语言通常指不需要编译即时运行的程序语言,如:Python、Lua、JavaScript、Shell,而静态语言则是需要编译后才能运行,常见于 C 、C++、Cs、JAVA 等。

解释器和编译器的不同表现的描述为:

解释器可以实时读取代码进行即时编译运行程序指令(常见于 .bat)

而编译器需要编译过后得到的可直接运行的软件再点击运行程序指令(常见于 .exe)

从这个角度来说,解释器也就是编译器编译出来的一种通用型动态代码执行环境的软件。

MicroPython 和 CPython 的区别

大多数时候,Python 的发展以 CPython 为主,以下列出一些与 CPython 的差异化信息。

MicroPython 和 CPython 在 Python3 语法上保持高度的一致性,常用的标准语法命令都已经支持。

MicroPython 虽然只实现了 CPython 的标准库和容器库的一些部分,常见容器库有同类功能,但不同名的模块,但大多算法类的 Python 逻辑代码是可以拿来即用的。

MicroPython 兼容实现的 CPython 的异常机制、没有实现元类(metaclass)机制,独立的 GC 机制。

在许当不同的硬件微芯片(最低在 nRF51)的移植上, MicroPython 代码接口缺乏一致性,呈现碎片化。

MicroPython 编译(mpy-corss)后得到的是 mpy ,而不是 CPython 的 pyc 文件。

MicroPython 在移植 CPython 代码时,经常缺少各种方法,所以要习惯寻找同类接口,而它们的使用方法除了看文档外就只能看源码。

MicroPython 作者是 dpgeorge ,要记住大佬。

MicroPython 带来了什么?

从开发者角度来讲,MicroPython 和 CPython 以及 PyPy 一样,都是 Python 代码的执行环境。

对于使用者(??)来说,调用通用的 Python 的逻辑代码,手握最大的源码宝库,并且在 Python 的世界里,一切都是开源的,但是 Python 调用外部的依赖库(dll、so、exe)等并不开源,只有执行的 Python 流程和方法,是你可以任意学习、理解、修改的源码。

动态语言中,最大的效果就是快速的适应程序的业务逻辑变化,减少大型程序的重复编译,通过接口供 Python 调用就是最大的特点,俗称的胶水语言因此而来,许多稳定的程序,可以提供外部接口交给 Python 反复调用确认效果,这就导致了动态语言最终多数用于测试环境和热更新程序领域。

一次编译,多次运行,是 Python 最大的好处,各举一个硬件和软件的例子。

在使用 HTTP 对接后端的时候,调试 API 接口,获取服务器的返回内容,通过 Python 可以做到随时变更 API 的参数重新发起请求,整个过程没有编译过程,只是更换参数执行函数,依次反复确认业务逻辑代码是否符合预期,类似自动化测试。

在控制硬件输出 PWM 的时候,例如调试音频设备或蜂鸣器,我们会需要经常变化参数来确认输出的波形或占空比,这时候,更换参数即可执行的 Python 就起到了快速开发的效果,对于一些需要大量调试和测试的开发。

以上例子都体现出一种效果,就是有许多需要大量测试才能确定的代码,使用 Python 进行开发会比 C 开发更具效率。

总结下来:

Python 拥有大量开放的源码,可以快速参考和查阅确认开发以及实施的时间和可能性。

Python 的业务逻辑开发效率优越,动态语言共同的特性,但随之牺牲的是性能。

在一些要求不是特别高的家用、民用、日常的场合,Python 会是你最好的帮手,就像过去的编程计算器一样,可以反复帮助你确认思考逻辑的正确性。

Python 语言开发特性

首先 Python 开发十分的快速,可以适应多种场合下的程序修改,实时热更新配置代码。

它拥有语法简洁、兼容大多数语言的特性、各种动态类型、自带大数库、大量开源示例代码、完整的 import 机制等等特性,这决定了它在不看重时间的场合里,用途特别明显,尤其是数据处理、算法验证、机器学习、编程学习、业务变更、升级程序等开发场合。

但是动态语言在关键操作上性能低下,所以通常我们会将关键部分逻辑迁移到 C 语言或更底层用于提速,再暴露给 Python 调用。

MicroPython 也和 Python 一样。

结语

想用一篇介绍我所知道的 Python 和 MicroPython ,但发现还是有些不足,如果有好的建议,欢迎留言。

撰写时间:2019年9月1日

作者名称:junhuanchen

联系方式:

WeChat & Github: 作者名称

QQ & E-mail: 作者名称@qq.com

原文地址:https://www.cnblogs.com/juwan/p/11445120.html

micropython是什么意思_MicroPython 是什么?相关推荐

  1. micropython 串口写文件_MicroPython通过2G模块串口收发短信

    集成2G通信.定位模组,赋予物联网特性.本例使用M6220,它是一款基于eSIM技术的2G模组,支持GSM/GPRS,提供GPS+北斗双模定位功能,并具备一定的数据处理能力,其2G工作频段有GSM85 ...

  2. micropython固件源码_Micropython加速物联网开发7 - Micropython源码编译与固件更新

    在实际开发中,难免会遇到编译Micropython源码的情况:比如当前固件损坏.固件版本升级.需要裁剪固件节省空间等.本文介绍在Linux环境中编译Micropython源码并下载到TPYBoard运 ...

  3. micropython用什么编译_micropython开发者指南

    Author shaniadolphin 获取git工程 mkdir micropython cd micropython git clone https://github.com/micropyth ...

  4. micropython编程软件下载_MicroPython可视化拼插编辑器:让硬件编程更智能!

    原标题:MicroPython可视化拼插编辑器:让硬件编程更智能! MicroPython是Python 3语言的精简高效实现 ,包括Python标准库的一小部分,经过优化可在微控制器和受限环境中运行 ...

  5. micropython是什么意思_MicroPython到底是啥-百度经验

    有一段说明. MicroPython is a lean and efficient implementation of the Python 3programming language that i ...

  6. micropython入门指南电子版_MicroPython入门指南

    Python是一种脚本语言,是一款非常容易使用的脚本语言,语法简介.使用简单.功能强大.容易扩展.有非常多的库可以使用.网络功能和计算功能也很强.方便的和其他语言配合使用.完全开源,受到原来越多的开发 ...

  7. micropython驱动lcd触摸屏_Micropython之萝卜狗远程门禁控制系统

    原标题:Micropython之萝卜狗远程门禁控制系统 * 本文作者:_橙子 ゝ,本文属FreeBuf原创奖励计划,未经许可禁止转载 当代社会,我们进公司需要门禁卡,出入小区需要门禁卡,门禁系统又称出 ...

  8. micropython是什么意思_MicroPython能做什么

    MicroPython它基于ANSIC,语法跟Python3基本一致,拥有独立的解析器.编译器.虚拟机和类库等.目前他支持基于32-bit的ARM处理器,比如说STM32F401.STM32F405. ...

  9. micropython开发板性能_MicroPython支持的开发板:高性能、低成本创客首选

    原标题:MicroPython支持的开发板:高性能.低成本创客首选 Python的开放.简洁.黏合正符合了现发展阶段对大数据分析.可视化.各种平台程序协作产生了快速的促进作用.自Python3的发布到 ...

最新文章

  1. 创业记——个人电脑、服务器选型
  2. HTML5从入门到精通(明日科技) 中文pdf扫描版
  3. 扇出性 java_索引与算法
  4. vim关闭下一行也是注释_10分钟教你为自己打造一个专属VIM
  5. Parent属性也可释放子对象
  6. 文件锁操作《精通Unix下C语言编程与项目实践》之三
  7. 逻辑回归 - sklearn (LR、LRCV、MLP、RLR)- Python代码实现
  8. UC浏览器PC版新版有什么特点
  9. 【Java例题】1.3给朋友的贺卡
  10. 使用SQLQuery 在Hibernate中使用sql语句
  11. 【每日算法Day 79】所有人都会做的入门题,但是能看出你的代码能力!
  12. DDD中的Specification模式
  13. 习题合集-数据结构导论
  14. CAN总线通信原理分析
  15. 在这个互联网加的时代,我们能做些什么呢?
  16. SQL应用:使用SQL分析索尼公司销售数据
  17. caffe 菜鸟学习记录
  18. 什么是必选?和招标有什么区别?
  19. php将数字转换人民币显示,php数字转化为人民币大写
  20. 鼠标拖曳盒子案例(限定边界)

热门文章

  1. memsql-官宣世界最快的内存关系型数据库安装部署
  2. 试读2-《白话C++ 练功篇》目录
  3. IK分词器-自定义分词
  4. 计算机网络 --- 计算机网络和因特网
  5. 【笔记】canvas 绘制足球 —— 第一步 画个球体
  6. Fedora 10 下载地址
  7. (6.1)MATLAB机器人正、逆解中姿态求解的欧拉角的说明
  8. 机器学习:Logistic回归介绍
  9. 使用IJ写scala的两种方式
  10. iOS 判断字符串中含有某个字符串 rangeOfString