全網最適合入門的物件導向程式設計教程:08 類和物件的Python實現-@property裝飾器:把方法包裝成屬性

FreakStudio發表於2024-07-04

全網最適合入門的物件導向程式設計教程:08 類和物件的 Python 實現-@property 裝飾器:把方法包裝成屬性

摘要:

本文主要對@property 裝飾器的基本定義、使用場景和使用方法進行了介紹,同時介紹了setter裝飾器和deleter裝飾器的應用場景和語法。

原文連結:

FreakStudio 的部落格

往期推薦:

學嵌入式的你,還不會物件導向??!

全網最適合入門的物件導向程式設計教程:00 物件導向設計方法導論

全網最適合入門的物件導向程式設計教程:01 物件導向程式設計的基本概念

全網最適合入門的物件導向程式設計教程:02 類和物件的 Python 實現-使用 Python 建立類

全網最適合入門的物件導向程式設計教程:03 類和物件的 Python 實現-為自定義類新增屬性

全網最適合入門的物件導向程式設計教程:04 類和物件的Python實現-為自定義類新增方法

全網最適合入門的物件導向程式設計教程:05 類和物件的Python實現-PyCharm程式碼標籤

全網最適合入門的物件導向程式設計教程:06 類和物件的Python實現-自定義類的資料封裝

全網最適合入門的物件導向程式設計教程:07 類和物件的Python實現-型別註解

更多精彩內容可看:

給你的 Python 加加速:一文速通 Python 平行計算

一文搞懂 CM3 微控制器除錯原理

肝了半個月,嵌入式技術棧大彙總出爐

電子計算機類比賽的“武林秘籍”

一個MicroPython的開源專案集錦:awesome-micropython,包含各個方面的Micropython工具庫

文件和程式碼獲取

可訪問如下連結進行對文件下載:

FreakStudio-一文速通物件導向程式設計-文件

image

本文件主要介紹如何使用 Python 進行物件導向程式設計,需要讀者對 Python 語法和微控制器開發具有基本瞭解。相比其他講解 Python 物件導向程式設計的部落格或書籍而言,本文件更加詳細、側重於嵌入式上位機應用,以上位機和下位機的常見串列埠資料收發、資料處理、動態圖繪製等為應用例項,同時使用 Sourcetrail 程式碼軟體對程式碼進行視覺化閱讀便於讀者理解。

相關示例程式碼獲取連結如下:
FreakStudio-一文速通物件導向程式設計-示例程式碼

正文

上一篇文章連結:

全網最適合入門的物件導向程式設計教程:06 類和物件的 Python 實現-自定義類的資料封裝

上面程式中,使用@property 修飾了 devstate()方法,這樣就使得該方法變成了 devstate 屬性的 getter 方法。

這裡用如下語句直接透過方法名來訪問方法:

s = SerialClass()
print(s.devstate)

程式執行如下:

image

property 裝飾器主要應用在以下場景:

  • 保護類的封裝特性
  • 讓開發者可以使用“物件.屬性”的方式操作操作類屬性

@property 的語法格式如下:

@property
def 方法名(self)
    程式碼塊

類似的要想實現修改 devstate 屬性的值,還需要為屬性新增 setter 方法,就需要用到 setter 裝飾器

它的語法格式如下:

@方法名.setter
def 方法名(self, value):
    程式碼塊

除此之外,還可以使用 deleter 裝飾器來刪除指定屬性,其語法格式為:

@方法名.deleter
def 方法名(self):
    程式碼塊

關於裝飾器更詳細的介紹可以看如下連結,這裡不做過多贅述:

https://www.runoob.com/w3cnote/python-func-decorators.html

image

相關文章