<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      全網(wǎng)最適合入門的面向?qū)ο缶幊探坛蹋?2 類和對(duì)象的Python實(shí)現(xiàn)-使用Python創(chuàng)建類

      全網(wǎng)最適合入門的面向?qū)ο缶幊探坛蹋?2 類和對(duì)象的 Python 實(shí)現(xiàn)-使用 Python 創(chuàng)建類

      摘要

      本文主要介紹了串口通信協(xié)議的基本概念、串口通信的基本流程、如何使用 Python 語言創(chuàng)建一個(gè)類和類內(nèi)成員中屬性和方法的定義。

      正文

      這里開始,我們將以嵌入式中常用的串口通信協(xié)議為例,講解以下知識(shí):

      ① 如何在 Python 中創(chuàng)建類和對(duì)象;

      ② 如何為 Python 對(duì)象添加屬性和行為;

      ③ 如何將類組織成包和模塊;

      ④ 如何限制外部訪問私有數(shù)據(jù)。

      在使用 Python 進(jìn)行編程之前,我們先回想一下平時(shí)我們是如何使用串口的。總結(jié)來說,無非就是下面幾個(gè)步驟:

      ① 首先,我們需要確定要使用的串口號(hào)。

      ② 其次,配置波特率、數(shù)據(jù)位、奇偶校驗(yàn)位、停止位、DTR/DSR、RTS/CTS 和 XON/XOFF。

      ③ 第三,打開串口。

      ④ 第四,收發(fā)數(shù)據(jù)。

      ⑤ 第五,關(guān)閉串口。

      接下來,我們就來研究下用 Python 怎么實(shí)現(xiàn)面對(duì)對(duì)象的串口操作。

      在大多數(shù)編程語言中,類就是一組用來描述如何生成一個(gè)對(duì)象的代碼段,由于 Python 是動(dòng)態(tài)語言,類是動(dòng)態(tài)生成的。通過 class 關(guān)鍵字我們可以定義一個(gè)新的類型,class 之后為類的名稱并以冒號(hào)結(jié)尾:

      _# 類名必須遵循標(biāo)準(zhǔn)的 Python 變量名準(zhǔn)則_
      _# 必須以字母或下畫線開頭,并只能由字母、下畫線或數(shù)字組成_
      _# PEP 8標(biāo)準(zhǔn)建議類名應(yīng)該用駝峰格式:_
      _#   以大寫字母開頭,任意后續(xù)單詞都以大寫字母開頭_
      class ClassName:
          pass
      

      類的定義行后面是類的內(nèi)容塊。和其他的 Python 代碼結(jié)構(gòu)一樣,類也用縮進(jìn)而非其他語言常用的大括號(hào)或方括號(hào)來界定。Python 中盡量用 4 個(gè)空格作為縮進(jìn)。任何好用的代碼編輯器都支持將 Tab 鍵輸入替換為 4 個(gè)空格。由于示例中第一個(gè)類實(shí)際上什么都不做,因此我們簡(jiǎn)單地在第 2 行用 pass 關(guān)鍵字表示下面沒有進(jìn)一步的動(dòng)作了。

      class ClassName:
          pass
      
      c = ClassName()
      print(id(ClassName), type(ClassName), ClassName)
      print(id(c), type(c), c)
      

      image

      這里,我們使用 printf 函數(shù)輸出類和實(shí)例的相關(guān)信息。需要說明的是,在 Python,所有的數(shù)據(jù)類型,值,變量,函數(shù),類,實(shí)例等等一切可操作的基本單元都使用對(duì)象(Object)表示。每個(gè)對(duì)象有三個(gè)基本屬性:ID,類型和值,也即有一塊內(nèi)存中存儲(chǔ)了一個(gè)對(duì)象,這塊內(nèi)存中一定存有這三個(gè)屬性。在以上的輸出中,我們可以看到在 Python 中定義一個(gè)新類(Class)等于創(chuàng)建了一個(gè)新類型(Type)的對(duì)象(Object),解釋器中一切對(duì)象均存儲(chǔ)在 PyObject 結(jié)構(gòu)中。

      示例中,我們定義了一個(gè)自己的類型 ClassName,c 是它的實(shí)例(Instance),它的類型是 main.ClassName。Class 和 Type 均是指類型(Type),Class 通常用于普通用戶使用 class 自定義的類型。Type 通常指 Python 的解釋器 CPython 內(nèi)置的類型。

      <__main__.ClassName object at 0x00000281CFD71190>
      

      指明了當(dāng)前實(shí)例 c 所處內(nèi)存空間為 0x00000281CFD71190。

      這里,我們首先創(chuàng)建一個(gè)串口類 SerialClass:

      _# 創(chuàng)建一個(gè)串口類_
      class SerialClass:
          pass
      

      但可以看到,我們并沒有定義類中任何東西,現(xiàn)在該怎么操作呢,怎么實(shí)現(xiàn)一個(gè)串口的收發(fā)功能呢?對(duì)于一個(gè)類而言,一般具有兩個(gè)成員:屬性和方法。用來描述具體某個(gè)對(duì)象的特征的是屬性,是靜態(tài)的,例如串口通信需要設(shè)置的一些參數(shù),如波特率、數(shù)據(jù)位位數(shù)等。每個(gè)對(duì)象有它們自己的行為或者是使用它們的方法,比如串口發(fā)送數(shù)據(jù)、接收數(shù)據(jù)、設(shè)置通信參數(shù)等,我們把這些行為稱之為方法,是動(dòng)態(tài)的,可以使用這些方法來操作一個(gè)對(duì)象。

      關(guān)于如何為我們剛剛創(chuàng)建的串口類添加屬性和方法,我們下一節(jié)會(huì)講到。

      文檔和代碼獲取

      可訪問如下鏈接進(jìn)行對(duì)文檔下載:

      https://github.com/leezisheng/Doc

      image

      本文檔主要介紹如何使用 Python 進(jìn)行面向?qū)ο缶幊蹋枰x者對(duì) Python 語法和單片機(jī)開發(fā)具有基本了解。相比其他講解 Python 面向?qū)ο缶幊痰牟┛突驎裕疚臋n更加詳細(xì)、側(cè)重于嵌入式上位機(jī)應(yīng)用,以上位機(jī)和下位機(jī)的常見串口數(shù)據(jù)收發(fā)、數(shù)據(jù)處理、動(dòng)態(tài)圖繪制等為應(yīng)用實(shí)例,同時(shí)使用 Sourcetrail 代碼軟件對(duì)代碼進(jìn)行可視化閱讀便于讀者理解。

      相關(guān)示例代碼獲取鏈接如下:https://github.com/leezisheng/Python-OOP-Demo

      image

      往期推薦:

      學(xué)嵌入式的你,還不會(huì)面向?qū)ο螅浚浚?/strong>

      全網(wǎng)最適合入門的面向?qū)ο缶幊探坛蹋?0 面向?qū)ο笤O(shè)計(jì)方法導(dǎo)論

      全網(wǎng)最適合入門的面向?qū)ο缶幊探坛蹋?1 面向?qū)ο缶幊痰幕靖拍?/strong>

      更多精彩內(nèi)容可看:

      給你的 Python 加加速:一文速通 Python 并行計(jì)算

      一文搞懂 CM3 單片機(jī)調(diào)試原理

      肝了半個(gè)月,嵌入式技術(shù)棧大匯總出爐

      電子計(jì)算機(jī)類比賽的“武林秘籍”

      一個(gè)MicroPython的開源項(xiàng)目集錦:awesome-micropython,包含各個(gè)方面的Micropython工具庫

      posted @ 2024-06-27 01:43  FreakStudio  閱讀(210)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 一区二区三区四区自拍偷拍| 艳妇乳肉豪妇荡乳在线观看| 国产激情av一区二区三区| 中文字幕国产精品二区| 男人的天堂av社区在线| 国产一区在线播放av| 最新国产精品好看的精品| 色欲综合久久中文字幕网| 成人年无码av片在线观看| 午夜免费福利小电影| 国产丰满乱子伦无码专区| 野花韩国高清电影| 日韩人妻av一区二区三区| 99久久精品久久久久久婷婷| 欧美亚洲h在线一区二区| 2021国产精品视频网站| 亚洲熟女精品一区二区| 日本亚洲中文字幕不卡| 亚洲精品成人区在线观看| 日韩精品一区二区三区激情视频| JIZZJIZZ国产| 郎溪县| 久久综合免费一区二区三区| 亚洲鸥美日韩精品久久| 无码熟妇人妻AV影音先锋| 国产精品色内内在线播放| 亚洲中文久久久精品无码| 神马久久亚洲一区 二区| 2020年最新国产精品正在播放 | 日本东京热不卡一区二区| 国产av一区二区三区| 亚洲天堂亚洲天堂亚洲天堂| 久久99国产精品尤物| 国内精品视频一区二区三区八戒 | 国产精品爱久久久久久久| 欧美人人妻人人澡人人尤物| 国产成人99亚洲综合精品| 日韩免费码中文在线观看| 人妻激情另类乱人伦人妻| 久久人人97超碰精品| 国产一级av在线播放|