گرچه پایتون زبانی همهمنظوره است، ولی مواردی وجود دارند که این زبان نمیتواند در آنها به عنوان انتخاب اول محسوب شود. به عنوان مثال، اگر قصد طراحی بازیهای پیچیدهای را دارید، ++C گزینهٔ بهتری خواهد بود و همچنین در دنیای نرمافزارهای به اصطلاح Embedded نیز زبان C به سلطهٔ خود ادامه میدهد. به همین دلیل، نسخهای از این زبان محبوب تحتعنوان MicroPython عرضه شده تا این خلاء را پر سازد.
MicroPython نسخهای اپنسورس از زبان پایتون تحت لایسنس MIT است که استفاده از آن را در دیوایسهای اِمبدد تسهیل میسازد به طوری که برای استفاده در میکروکنترولرها مناسب است به علاوه اینکه پیادهسازی خوبی از پایتون نسخهٔ ۳ و همچنین لایبرری استاندارد این زبان در آن صورت گرفته است.
تفاوتهای میان Python و MicroPython
MicroPython Differences from CPython تمامی تفاوتهای میان MicroPython و Cpython 3 را لیست کرده است (Cpython 3 پیادهسازی استاندارد پایتون نسخهٔ 3 محسوب میشود.) به عنوان مثال، برای مدیریت حافظه در میکروپایتون به جای Reference Counting از روش Garbage Counting استفاده میشود و یا پشتیبانی حداقلی از Introspection و Reflection در این نسخه از پایتون وجود دارد که بیشتر این تغییرات باعث میشوند تا حجم میکروپایتون کم باشد و برای استفاده در دیوایسهای اِمبدد، میکروکنترلرها و همچنین بوردهای پورتابل مناسب شود. به عنوان نمونه سورسکد میکروپایتون داریم:
import pyb, micropython
micropython.alloc_emergency_exception_buf(100)
class Foo(object):
def __init__(self, timer, led):
self.led = led
timer.callback(self.cb)
def cb(self, tim):
self.led.toggle()
red = Foo(pyb.Timer(4, freq=1), pyb.LED(1))
green = Foo(pyb.Timer(2, freq=0.8), pyb.LED(2))
همچنین میکروپایتون زیرمجموعهٔ کوچکی از پکیجها را شامل میشود و همانطور که گفته شد، اکثر لایبرریهای استاندارد پایتون در آن پورت شدهاند. علاوه بر این موارد، ابزاری شبیه به pip موجود در پایتون به نام upip برایش عرضه شده که برای نصب پکیجهای میکروپایتون کاربردی است. در ضمن فراموش نکنید که MicroPython به زبان C نوشته شده و از طریق میکروپایتون میتوانید به لایبرریهای زبان سی نیز دسترسی داشته باشید.