在Python函數的學習中 , 存在一種比較高級的語法 , 就是可以允許我們在類的定義中使用自定義函數 , 這就是我們說的魔法函數 , 對于魔法函數的管理 , 我們可以分成三種不同的屬性 , 下面一起來看看這三種屬性吧 。

一、什么是魔法函數
之前所了解了魔法方法 , 就是在定義的時候 , 通常是以下劃線作為開頭和結束 , 在Python中魔法函數就是魔法方法 , 它是Python中存在的一種比較高級的語法 , 通常實在類的自定義函數中使用 , 允許用戶在類中自定義函數 , 并且這個函數要綁定到類的特殊方法中 。
二、管理魔法函數
【Python如何管理魔法函數?Python三種屬性管理魔法函數】在Python中要對函數進行管理 , 有三種方式 , 下面分別給大家講解
說明
1、_setattr_設定未知的屬性
當我們定義一個類的對象的時候 , 默認情況下會將一個屬性名和值存放在一個實例對象中 , 如果在一個對象中 , 需要使用到這個屬性的時候 , 并在沒有設置的情況下 , 它會自動的調用這個方法 。代碼如下:
class Foo(object): def __init__(self): pass def __setattr__(self, key, value): print("調用setattr方法,屬性為:", key, value) super().__setattr__(key, value)2、_getattr_找未知的屬性
第二種管理方式是使用_getattr_ , 它是去找到一個未知的屬性 , 并且會對這個方法進行調用 。例如:
def __getattr__(self, item): print("調用getattr方法,屬性為:", item) return None3、_getattribute_
這個函數是一個Python內建的方法 , 它一種可以對屬性進行攔截的工具 , , 就是當這個類的屬性被實例訪問時 , 會自動調用類的__getattribute__方法
def __getattribute__(self, attr): #注意:這里的attr是傳入的屬性名,不是屬性值 print("開始屬性校驗攔截功能") print(attr) return object.__getattribute__(self, attr) 返回一個屬性名到此這篇關于Python如何管理魔法函數?Python三種屬性管理魔法函數的內容就分享到這里了 , 希望文章中的內容可以對大家的學習帶來一定的幫助 。
猜你喜歡
- Python如何在不同模塊使用特殊變量?Python跨模塊使用全局變量的方法
- 如何查手機在哪 最好用的軟件
- python中__name__有什么含義?python中name屬性的應用
- 在linux下如何查看python已經安裝的模塊?linux系統中查看Python模塊的方法
- Python腳本運行閃退為什么?Python代碼執行閃退如何解決
- 扶郎花養殖方法 扶郎花如何養殖
- Python生成不重復隨機整數代碼怎么寫?Python如何生成不重復隨機數列表
- Python怎么逐行寫入文件?Python寫數據到文件內怎么換行
- Python判斷一年中的第幾天怎么做?Python如何獲取時間對應天數
- Python如何提取word中的圖片?Python怎么將word文件內圖片取出來
