日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python创建变量_Python每天一分钟:给类对象动态新增/删除成员变量和方法(函数)...

發布時間:2024/9/15 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python创建变量_Python每天一分钟:给类对象动态新增/删除成员变量和方法(函数)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一般類對象新增變量或方法的過程

在面向對象(OOP)的編程方法中,如果需要給實例化的類對象新增方法或者屬性,一般都是在class類的定義中新增內容,然后才能用類對象來調用新增的方法或變量。如在C++中:

C++示例類

如果此時開發人員需要為類對象p新增一個變量age和一個方法weigh()都是通過修改類的原始定義:

C++類新增成員

然而在python中給類對象新增變量或者方法并不需要對原始類定義進行重新修改,隨時都可以給類對象新增成員。

pythonyu'yan

那么下面就以下圖中的代碼為例,為大家演示如何給python中的類對象動態的添加變量/屬性和方法:

python示例類

給類對象動態添加成員變量

Python 支持為已創建好的對象動態增加實例變量而不會改變類的原始定義!方法很簡單,只需要給類對象的新變量賦值即可,如給示例代碼中的對象p新增性別變量sex:

# 為p對象增加一個sex實例變量,直接聲明即可p.sex = "男"print(p.sex)運行結果為:男

上述代碼為 p 對象動態新增了一個 sex實例變量,即直接對p對象的sex實例變量賦值就能新增一個實例變量。那么如何刪除這個動態變量呢?

python也支持動態刪除實例變量,使用del語句即可刪除,如刪除類對象p的name成員變量:

# 刪除p對象的name實例變量del p.name# 再次訪問p的name實例變量print(p.name)運行結果為:lisi

上述代碼使用del動態刪除了已經創建好的 p 對象的 name 實例變量,但因類中定義了類變量 name,故程序不會報錯;否則會報出 AttributeError 錯誤,并提示:'Person' object has no attribute 'name'。

給類對象動態添加方法/函數

注意:初學者在理解以下內容之前,需清楚python類中 self 參數的含義和作用,可自行搜索查閱:Python中self的用法!

Python 同時支持為類對象動態新增方法,示例代碼中的Person類只定義了一個 height() 方法,而實際使用時,開發人員完全可以為p對象動態增加方法:

兩種新增類對象函數的方法

說明:為p對象動態增加方法時,Python 不會自動將調用者自動綁定到類方法的第一個參數self(即使將第一個參數命名為 self 也沒用)。通俗的說就是雖然代碼形式上(p.weigh())聲明了對象p的新方法,但實際上python并不知道該方法是屬于對象p的成員方法,需要用代碼p.weigh(p)來手動綁定方法weigh()為對象p的新方法。

另一種實現上述綁定功能的方法:使用MethodType模塊

def intro_func(self, content):print("("我是一個人")# 導入MethodTypefrom types import MethodType# 使用MethodType對intro_func進行包裝,將該函數的第一個參數綁定為pp.intro = MethodType(intro_func, p)# 第一個參數已經綁定了,無需傳入p.intro("新增了方法intro,功能由intro_func()實現")

上述代碼中,通過 MethodType 包裝 intr_func 函數之后,為p對象動態增加的 intro() 方法的第一個參數self就綁定了對象p,因此程序在調用intro() 方法時就自動將intro方法歸為p對象的成員方法,而無須傳入第一個參數self,功能與在定義Person類時己經定義了 intro() 方法一樣。

完整代碼演示

完整代碼示例

總結

為類對象動態添加成員變量或成員方法是python類操作中非常人性化的設計,在python編程中作用明顯,希望本文內容有助于讀者學習/工作!最后感謝您的閱讀!

謝謝

總結

以上是生活随笔為你收集整理的python创建变量_Python每天一分钟:给类对象动态新增/删除成员变量和方法(函数)...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。