www84811.com-国产区一区二区三区,亚洲第一中文字幕在线观看,91精品久久香蕉国产线看观看,国产精品欧美久久

電子開發(fā)網(wǎng)

電子開發(fā)網(wǎng)電子設(shè)計(jì) | 電子開發(fā)網(wǎng)Rss 2.0 會(huì)員中心 會(huì)員注冊(cè)
搜索: 您現(xiàn)在的位置: 電子開發(fā)網(wǎng) >> 編程學(xué)習(xí) >> Python >> 正文

Python和MicroPython之間的差異

作者:佚名    文章來源:本站原創(chuàng)    點(diǎn)擊數(shù):    更新時(shí)間:2023/11/7

MicroPython 編程最吸引人的方面之一是它與近二十年來在桌面環(huán)境中廣泛使用的 CPython 相似。由于幾乎相同的語法和設(shè)計(jì)范例,在嵌入式和桌面開發(fā)環(huán)境之間移動(dòng)幾乎是無縫的體驗(yàn)。這在物聯(lián)網(wǎng)時(shí)代是非常可取的,在這個(gè)時(shí)代,來自嵌入式電子產(chǎn)品的數(shù)據(jù)必須可以在眾多平臺(tái)上訪問,包括移動(dòng)、桌面和云。如果工具和編程語言的變化最小化,開發(fā)人員可以保持精簡(jiǎn),產(chǎn)品開發(fā)周期可以縮短。也就是說,與桌面計(jì)算相比,嵌入式硬件環(huán)境的本質(zhì)要求 MicroPython 和 CPython 之間存在一些并非微不足道的差異。

注:CPython 是用 C 語言實(shí)現(xiàn)的 Python 解釋器,也是官方的并且是最廣泛使用的 Python 解釋器。除了 CPython 以外,還有用 JAVA 實(shí)現(xiàn)的 Jython 和用.NET 實(shí)現(xiàn)的 IronPython,使 Python 方便地和 JAVA 程序、.NET 程序集成。另外還有一些實(shí)驗(yàn)性的 Python 解釋器比如 PyPy。

CPython 是使用字節(jié)碼的解釋器,任何程序源代碼在執(zhí)行之前先要編譯成字節(jié)碼。它還有和幾種其它語言(包括 C 語言)交互的外部函數(shù)接口。

CPython 

嵌入式電子生態(tài)系統(tǒng)在許多方面受到限制,而臺(tái)式機(jī)或服務(wù)器則沒有。首先,它們受到能源消耗的限制。許多嵌入式設(shè)備都是電池供電的,因此延長電池壽命在性能方面受到限制。臺(tái)式計(jì)算機(jī)可能以幾千兆赫茲的速度運(yùn)行,而微控制器充其量只能以幾十兆赫茲的速度運(yùn)行。受限內(nèi)存和存儲(chǔ)也往往是顯著影響 CPython 和 MicroPython 之間差異的限制因素。由于內(nèi)存僅以千字節(jié)或兆字節(jié)為單位,內(nèi)存密集型功能通常會(huì)減少甚至完全從 MicroPython 實(shí)現(xiàn)中刪除。了解差異對(duì)于希望避免調(diào)試嵌入式代碼的許多令人沮喪的時(shí)間的開發(fā)人員來說非常重要。

CPython 開發(fā)人員可以訪問數(shù)百個(gè)預(yù)構(gòu)建模塊,只需一行代碼即可將這些模塊輕松添加到他們的項(xiàng)目中。這些模塊消除了在尋求向項(xiàng)目添加功能時(shí)重新發(fā)明輪子的需要。但是,許多模塊在內(nèi)存利用率方面可能非常大。MicroPython 要么消除模塊,要么提供專為嵌入式平臺(tái)設(shè)計(jì)的模塊的定制實(shí)現(xiàn)。還有嵌入式平臺(tái)獨(dú)有的模塊,例如與通用 I/O (GPIO) 引腳的接口。

CPython 使用自動(dòng)引用計(jì)數(shù)作為其內(nèi)存管理方式,而 MicroPython 使用垃圾收集。從實(shí)際的角度來看,當(dāng)需要分配內(nèi)存時(shí),MicroPython 將嘗試在堆上找到足夠大小的內(nèi)存塊。如果失敗,MicroPython 將尋求釋放內(nèi)存中未使用或冗余的對(duì)象。這是一個(gè)通常以毫秒為單位的過程。或者,開發(fā)人員可以偶爾gc.collect()以預(yù)定的時(shí)間間隔運(yùn)行以清理內(nèi)存,以確保垃圾收集不會(huì)在代碼的關(guān)鍵部分發(fā)生。

語法差異可能是讓大多數(shù)開發(fā)人員陷入困境的差異類型,特別是如果您有任何重要的 CPython 經(jīng)驗(yàn),這可能會(huì)給您編程時(shí)帶來某種“肌肉記憶”。

MicroPython 要求文字?jǐn)?shù)字和關(guān)鍵字之間有空格;相比之下,CPython 則不然。

MicroPython 允許使用 := 賦值給理解變量;CPython 引發(fā)語法錯(cuò)誤。

使 Python 對(duì)編碼新手友好的設(shè)計(jì)特性之一是它處理數(shù)據(jù)類型(例如整數(shù)、布爾值、浮點(diǎn)數(shù))的方式。在 Python 中,所有數(shù)據(jù)類型都是類,變量是類的實(shí)例。然而,MicroPython 并沒有實(shí)現(xiàn)整個(gè) CPython 對(duì)象數(shù)據(jù)模型。值得注意的差異包括缺少多重繼承、__new__ 和 __del__特殊方法可能不起作用、方法解析順序不同以及不支持元類。

MicroPython 中未實(shí)現(xiàn)異常鏈接。因此,MicroPython 無法跨程序的不同抽象層重新拋出異常。

內(nèi)置類型的處理方式不同。例如,MicroPython 不支持刪除數(shù)組。

在 Python 中,函數(shù)是對(duì)象并且具有一組定義的屬性,可以通過函數(shù)調(diào)用訪問這些屬性。例如,所有函數(shù)都有一個(gè)內(nèi)置屬性__doc__,它返回函數(shù)源代碼中定義的文檔字符串。函數(shù)的用戶定義屬性在 CPython 中是可能的;但是,MicroPython 不支持它們。這樣做是因?yàn)榍度胧较到y(tǒng)中通常會(huì)遇到內(nèi)存限制。

覆蓋sys.stdin, sys.stdout, 和sys.stderr是不可能的。這些是解釋器用于標(biāo)準(zhǔn)輸入、輸出和錯(cuò)誤的文件對(duì)象。這就是我們向用戶顯示文本并從用戶那里獲取輸入的方式。

未能加載的模塊仍被注冊(cè)為已加載。這是為了使模塊處理更有效率。因此,加載不包含異常處理。在部署到生產(chǎn)環(huán)境之前,一定要在開發(fā)環(huán)境中測(cè)試代碼!

該environ屬性未實(shí)現(xiàn)。相反,開發(fā)人員必須使用getenv()、putenv()和unsetenv() 方法來設(shè)置和獲取環(huán)境變量。請(qǐng)注意,該getenv() 方法只允許將一個(gè)參數(shù)傳遞給它。

該print()函數(shù)不會(huì)像 CPython 那樣檢查遞歸數(shù)據(jù)結(jié)構(gòu)(例如,遞歸列表)。MicroPython 會(huì)檢查堆棧使用情況,因此打印遞歸數(shù)據(jù)結(jié)構(gòu)不會(huì)因堆棧溢出而導(dǎo)致崩潰。

方法的錯(cuò)誤消息可能會(huì)顯示意外的參數(shù)計(jì)數(shù),因?yàn)?MicroPython 將“self”計(jì)為參數(shù)。確保在處理錯(cuò)誤消息時(shí)牢記這一事實(shí)。

JSON(JavaScript 對(duì)象表示法)是一種流行的數(shù)據(jù)交換格式,許多物聯(lián)網(wǎng)終端設(shè)備使用它來與云高效通信。如果 JSON 對(duì)象不可序列化,MicroPython JSON 模塊不會(huì)拋出異常。

該struct 模塊在 Python 值和表示為 Python 字節(jié)對(duì)象的 C 結(jié)構(gòu)之間進(jìn)行轉(zhuǎn)換。這允許有效處理存儲(chǔ)在文件中或來自傳感器常用的網(wǎng)絡(luò)連接或串行協(xié)議的二進(jìn)制數(shù)據(jù)。不幸的是,該struct.pack(format, v1, v2)函數(shù)不進(jìn)行檢查以確保為其提供了正確數(shù)量的參數(shù)。這與 CPython 實(shí)現(xiàn)形成對(duì)比,后者確實(shí)檢查參數(shù)計(jì)數(shù)。

未實(shí)現(xiàn)在數(shù)組中搜索整數(shù)的功能。因此,以下代碼將導(dǎo)致錯(cuò)誤:

import array as array
a = array.array('i', [1, 2, 3, 4])
print(1 in a)

 

CPython 會(huì)打印false,而 MicroPython 會(huì)返回未實(shí)現(xiàn)的錯(cuò)誤消息。

MicroPython 是一種功能強(qiáng)大且易于使用的編程語言,用于開發(fā)嵌入式應(yīng)用程序。但是,與用于創(chuàng)建桌面和云原生應(yīng)用程序的功能更豐富的 Python 實(shí)現(xiàn)相比,它是有限的。一些差異可能會(huì)在未來的 MicroPython 版本中得到修復(fù),或者隨著新功能被添加到 Python 的參考實(shí)現(xiàn)中,可能會(huì)出現(xiàn)新的差異。要查看 CPython 和 MicroPython 之間的最新差異,請(qǐng)務(wù)必在其網(wǎng)站上查看 MicroPython 的官方文檔。

Tags:Python,MicroPython  
責(zé)任編輯:admin
請(qǐng)文明參與討論,禁止漫罵攻擊。 昵稱:注冊(cè)  登錄
[ 查看全部 ] 網(wǎng)友評(píng)論
關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢
www84811.com-国产区一区二区三区,亚洲第一中文字幕在线观看,91精品久久香蕉国产线看观看,国产精品欧美久久
亚洲美女视频一区| 国产在线播精品第三| 制服丝袜av成人在线看| 日韩成人一区二区三区在线观看| 日韩免费电影一区| 福利电影一区二区三区| 亚洲欧美乱综合| 91精品黄色片免费大全| 国产麻豆视频一区二区| 日韩一区在线免费观看| 欧美日韩视频在线一区二区| 久久狠狠亚洲综合| 国产精品久久久久一区二区三区| 欧洲国内综合视频| 久久精品免费看| 国产精品久久久久久亚洲毛片| 欧美性色黄大片| 精品一区二区三区在线视频| 国产精品久久久久久一区二区三区| 欧美日韩一区在线| 国产一区二区三区四区五区入口| 国产精品久久久久天堂| 欧美精品三级日韩久久| 国产剧情在线观看一区二区| 一区二区在线观看av| 欧美电视剧在线看免费| 99re66热这里只有精品3直播 | 88在线观看91蜜桃国自产| 久久狠狠亚洲综合| 亚洲欧美日韩中文播放 | 亚洲在线成人精品| 精品99一区二区| 91福利社在线观看| 国产精品亚洲视频| 婷婷国产v国产偷v亚洲高清| 中文成人综合网| 51午夜精品国产| www.亚洲色图| 蜜桃精品在线观看| 亚洲精品免费在线播放| 精品日产卡一卡二卡麻豆| 一本一道综合狠狠老| 国内不卡的二区三区中文字幕 | 国产精品免费免费| 欧美一级二级三级蜜桃| 色综合 综合色| 国产精品18久久久久久vr| 香蕉影视欧美成人| 国产精品久久福利| 亚洲精品在线观看网站| 欧美日韩一区二区三区在线看| 国产成人精品综合在线观看 | 91精品国产综合久久蜜臀| 99r国产精品| 国产激情视频一区二区三区欧美| 日韩精品一级中文字幕精品视频免费观看 | 欧美亚洲免费在线一区| 成人午夜大片免费观看| 蜜臀久久99精品久久久画质超高清| 中文字幕亚洲欧美在线不卡| 久久色视频免费观看| 在线电影一区二区三区| 91久久精品一区二区| 成人av综合在线| 国产乱码精品一区二区三 | 亚洲成人av一区二区三区| 亚洲天堂福利av| 国产欧美日韩精品在线| 亚洲精品一区二区三区香蕉| 91精品麻豆日日躁夜夜躁| 欧洲精品在线观看| 91丨porny丨首页| 成人激情免费电影网址| 精品一区二区在线免费观看| 免费成人你懂的| 亚洲一区视频在线| 亚洲黄色在线视频| 中文字幕在线不卡一区| 亚洲国产成人私人影院tom| 精品国产免费久久| 日韩免费成人网| 欧美一区二区三区不卡| 7878成人国产在线观看| 欧美日韩成人在线一区| 欧美最猛性xxxxx直播| 一本大道久久a久久综合| 99久久婷婷国产综合精品| 国产91丝袜在线18| 国产大陆亚洲精品国产| 国产真实乱对白精彩久久| 久久99精品一区二区三区| 男男成人高潮片免费网站| 日韩成人av影视| 天天综合色天天综合色h| 午夜精品免费在线| 性做久久久久久久久| 五月婷婷激情综合| 日韩精品色哟哟| 日韩av一级电影| 免费成人av在线播放| 久久99国产精品成人| 国产一区二区在线电影| 国产成人夜色高潮福利影视| 国产成人精品影视| 成人午夜看片网址| 99精品1区2区| 色八戒一区二区三区| 欧美日韩一区三区四区| 在线成人高清不卡| 日韩一级片网站| xf在线a精品一区二区视频网站| 久久综合999| 国产精品天天看| 亚洲视频免费看| 亚洲国产精品一区二区久久 | 91精品国产91热久久久做人人| 在线不卡一区二区| 日韩欧美国产小视频| 久久婷婷国产综合精品青草| 国产精品素人视频| 亚洲美女视频在线| 三级欧美在线一区| 国产真实乱子伦精品视频| 成人国产在线观看| 色狠狠一区二区| 在线电影欧美成精品| 久久综合视频网| 国产精品国产三级国产三级人妇| 亚洲另类色综合网站| 视频一区免费在线观看| 激情小说欧美图片| 成人免费看的视频| 在线观看国产日韩| 日韩欧美激情四射| 国产精品久久国产精麻豆99网站 | 青娱乐精品视频| 国产一区二区三区黄视频| 成人高清视频在线| 欧美人成免费网站| 久久蜜桃一区二区| 亚洲日本青草视频在线怡红院| 亚洲高清不卡在线| 国产一区视频网站| 在线免费观看日韩欧美| 日韩一区二区三区观看| 国产精品欧美精品| 午夜欧美2019年伦理| 国产精品亚洲а∨天堂免在线| 91丨porny丨首页| 欧美一卡二卡三卡| 国产精品女上位| 日韩va亚洲va欧美va久久| 高清av一区二区| 欧美另类z0zxhd电影| 久久精品视频在线免费观看 | 亚洲自拍另类综合| 国产自产高清不卡| 欧美性大战久久久久久久蜜臀| 日韩久久免费av| 亚洲色图一区二区三区| 久久国产乱子精品免费女| 色婷婷久久久亚洲一区二区三区| 日韩一区二区在线观看视频| 中文字幕视频一区| 美女爽到高潮91| 91网站最新地址| 欧美精品一区二区三| 一区二区三区av电影| 黑人精品欧美一区二区蜜桃| 欧美中文字幕一区二区三区| 国产亚洲自拍一区| 日韩专区一卡二卡| 91女厕偷拍女厕偷拍高清| 精品播放一区二区| 亚洲福利视频一区二区| 成人手机在线视频| 日韩午夜电影av| 一区二区三区中文在线观看| 国产高清不卡一区| 91精品国产综合久久福利软件| 1000部国产精品成人观看| 久久精品国产**网站演员| 欧美午夜宅男影院| 国产精品女上位| 国产真实乱子伦精品视频| 欧美美女一区二区三区| 1000部国产精品成人观看| 国产一区二区在线电影| 欧美一区二区三区人| 一区二区三区国产豹纹内裤在线 | 处破女av一区二区| 精品理论电影在线观看| 婷婷一区二区三区| 在线日韩国产精品| 自拍偷拍亚洲综合| 成人午夜免费电影| 久久午夜老司机| 久久国产精品第一页| 91精品国产麻豆国产自产在线 | 秋霞午夜鲁丝一区二区老狼|