classfoo():
def __init__(self,name):
self.name=name
def text(self):
return
123f=foo(1
)'''
hasattr(obj,name)
判斷乙個物件裡面是否有name屬性,或者name方法,返回bool值,有name特性返回ture,否則
返回false
注意:name需要引號
'''print(hasattr(f,'
name'))
print(hasattr(f,
'text'))
print(hasattr(f,
'self.name'))
print(hasattr(f,
'__init__'))
'''getattr(obj,name,[default
])獲取物件的屬性或方法,如果存在,則返回它的屬性值,如果不存在則會報錯,也可以設定乙個
預設值,也會返回這個預設值;如果是物件的方法,則返回乙個方法函式的記憶體位址,
如果想要執行它,可以在後面新增()以及引數
'''print(getattr(f,'
name'))
print(getattr(f,
'text
')())
print(getattr(f,
'__init__
')('
lll'
))print(getattr(f,
'ssss
',11
))'''
setattr(obj,name,value)
更改屬性的值,如果屬性不存在,會建立乙個屬性,然後賦值,如果更改的是方法,他將
把方法更改為屬性,並為其賦值
'''print(setattr(f,'
age','18'
))print(setattr(f,
'name
','ldq'))
print(setattr(f,
'text
','fun'))
print(getattr(f,
'age'))
print(getattr(f,
'name'))
print(getattr(f,
'text
'))
Python 反射的用法
在做程式開發中,我們常常會遇到這樣的需求 需要執行物件裡的某個方法,或需要呼叫物件中的某個變數,但是由於種種原因我們無法確定這個方法或變數是否存在,這是我們需要用乙個特殊的方法或機制要訪問和操作這個未知的方法或變數,這中機制就稱之為反射。接下記錄下反射幾個重要方法 判斷物件中是否有這個方法或變數 c...
python反射用法
反射在python中是乙個很重要的東西,但是具體怎麼用呢?讓我們來看看。首先我們來建立乙個類,並且定義了2個普通方法,和乙個類方法 class foo dic deffunc1 self print func1 def func2 self print func2 classmethod deffu...
Python反射的用法例項分析
在做程式開發中,我們常常會遇到這樣的需求 需要執行物件裡的某個方法,或需要呼叫物件中的某個變數,但是由於種種原因我們無法確定這個方法或變數是否存在,這是我們需要用乙個特殊的方法或機制要訪問和操作這個未知的方法或變數,這中機制就稱之為反射。接下記錄下反射幾個重要方法 hasattr 判斷物件中是否有這...