国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

小結Python的反射機制

瀏覽:2日期:2022-07-09 16:38:57

前言:

前兩天用Python實現了ftp服務器。在小項目中就用到了反射。因此寫個筆記鞏固下。

反射的定義:檢測和修改它本身狀態或行為的一種能力(自省)。

而通過反射,Python可以通過字符串的映射或修改程序運行的狀態和方法。

反射的四個方法。hasattr,getattr,setattr,delattr

hasattr:判斷一個方法是否存在與這個類中

class Person(object): def __init__(self,name): self.name = name def talk(self): print('%s正在交談'%self.name)p = Person('laowang') print(hasattr(p,'talk')) # True。因為存在talk方法print(hasattr(p,'name')) # True。因為存在name變量print(hasattr(p,'abc')) # False。因為不存在abc方法或變量

getattr:根據字符串去獲取obj對象里的對應的方法的內存地址,加'()'括號即可執行

class Person(object): def __init__(self,name): self.name = name def talk(self): print('%s正在交談'%self.name)p = Person('laowang')n = getattr(p,'name') # 獲取name變量的內存地址print(n)# 此時打印的是:laowangf = getattr(p,'talk') # 獲取talk方法的內存地址f() # 調用talk方法我們發現getattr有三個參數,那么第三個參數是做什么用的呢?s = getattr(p,'abc','not find')print(s)# 打印結果:not find。因為abc在對象p中找不到,本應該報錯,但因為修改了找不到就輸出not find

setattr:通過setattr將外部的一個函數綁定到實例中

def abc(self): print('%s正在交談'%self.name)class Person(object): def __init__(self,name): self.name = namep = Person('laowang')setattr(p,'talk',abc) # 將abc函數添加到對象中p中,并命名為talkp.talk(p)# 調用talk方法,因為這是額外添加的方法,需手動傳入對象setattr(p,'age',30) # 添加一個變量age,復制為30print(p.age) # 打印結果:30

delattr:刪除一個實例或者類中的方法

class Person(object): def __init__(self,name): self.name = name def talk(self): print('%s正在交談'%self.name)p = Person('laowang')delattr(p,'name') # 刪除name變量print(p.name) # 此時將報錯

為什么用反射

好處一:

實現可插拔機制

可以事先定義好接口,接口只有在被完成后才會真正執行,這實現了即插即用,這其實是一種‘后期綁定’

好處二:

動態導入模塊(基于反射當前模塊成員)

以上就是小結Python的反射機制的詳細內容,更多關于python 反射的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: japanese日本舒服丰满 | 成人欧美午夜视频毛片 | 亚洲视频在线一区二区 | 亚欧美图片自偷自拍另类 | 99精品国产综合久久久久 | 黄a在线观看 | 特大一级aaaaa毛片 | 久久精品国产亚洲综合色 | 欧美特黄三级成人 | 亚洲精品日韩专区在线观看 | 久久成人免费网站 | 亚州视频一区二区 | 精品成人免费一区二区在线播放 | 国产孕妇孕交一级毛片 | 成人三级在线 | 在线观看视频一区 | 国产精品永久免费自在线观看 | 久久精品a亚洲国产v高清不卡 | 91久久99久91天天拍拍 | 高清毛片aaaaaaaaa片 | 精品视频亚洲 | 久久久精品国产免费观看同学 | 久久精品国产三级不卡 | 成人黄18免费网站 | 亚洲精品91香蕉综合区 | 成人免费ā片 | 在线观看免费国产成人软件 | 中文一区二区在线观看 | 亚洲第一区视频在线观看 | 男的操美女 | 日韩欧美在线播放 | 亚洲一级成人 | 九九视频免费观看 | 1024手机基地在线看手机 | 91精品国产爱久久久久久 | 亚洲综合日韩欧美一区二区三 | 亚洲国产精品久久 | 在线免费观看一级毛片 | 亚洲高清不卡 | 99视频在线精品免费观看18 | 50岁老女人毛片一级亚洲 |