[Python教學] @property是什麼? 使用場景和用法介紹

python property 是什麼

Python內建的 @property 用法,本篇描述了 property 的兩種特性,和一個實際應用上的場景,希望此篇講解對你有幫助。

Property 特性一:

 ▍特性一:將 class (類) 的方法轉換為 只能讀取的 屬性

以下是一個 @property 簡單的使用方式:

 ▍什麼是只能讀取的屬性?

首先我們先將 class 實例化 andy = Bank_acount(),當我們 print(andy.password) 時,可以獲得 密碼:123,當我想對 andy.password 修改時會發現程式出現了 AttributeError: can’t set attribute 的錯誤,這就是 property 只能讀取的屬性特性

▍只能讀取,那要怎麼修改呢?

接下來我們會在特性二看到 property 的 setter、getter 和 deleter 方法

Property 特性二:

 ▍特性二:重新實現一個屬性的 setter、getter 和 deleter 方法

以下是 @property 的 setter、getter 和 deleter 的使用範例:

 ▍getter

 ▍setter

 ▍deleter

為什麼會需要 @property?

@property 是要實現物件導向中設計中封裝的實現方式,關於什麼是封裝和物件導向,本篇不會多加描述,可以參考這篇:
[Python教學]物件導向-Class類的封裝/繼承/多型

@property 的實際應用場景

案例:當使用者在建立會員帳號密碼時,密碼傳送進資料庫前會被加密的過程

首先我們將 class 實例化 user_max = User(),我們使用 @password.setter 的方式,來設定 user_max 的密碼是 max

當設定完成後,我們再度呼叫 user_max.password 方法時,會出現 password is not readable attribute 的錯誤

我們只能看到加密過後的密碼 print(user_max.password_hash)

那使用者登入時,要如何驗證密碼正確呢?
只需要將使用者登入時輸入的密碼,使用 verify_password 的方法,即可返回是正確或錯誤

以上就是一個簡單的 @property 使用場景案例

總結一下:

本篇討論了Property的兩個用法:
1. 將 class (類) 的方法轉換為 只能讀取的 屬性
2. 重新實現一個屬性的 setter、getter 和 deleter 方法

如果對 class 中的什麼是類和方法不太了解的話,可以參考這篇:
[Python教學]物件導向-Class類的封裝/繼承/多型

如果對@裝飾詞是什麼想了解的話,可以參考這篇:
[Python教學] 裝飾詞原理到應用

除了 @property 外,還有什麼好用的方法有興趣的話,可以參考:
[Python教學] Class / Static /Abstract Method 初探

那麼 [Python教學]@Property是什麼? 結束囉,感謝收看!

有關Max行銷誌的最新文章,都會發佈在Max的Facebook粉絲專頁,如果想看最新更新,還請您按讚或是追蹤唷!

在〈[Python教學] @property是什麼? 使用場景和用法介紹〉中有 1 則留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *