先看**:
>>>
class
myclass:
defhello_1(self):
return
'hello_1
'def
hello_2(self):
return
'hello_2
'>>>
defmain(index):
hello
=getattr(myclass(),
'hello_%s'%
index,myclass().hello_1)
restr
=hello()
restr
>>>
main(1)
hello_1
>>>
main(2)
hello_2
>>>
main(3)
hello_1
>>>
重要的是getattr函式,它接受三個引數,第乙個為模組,第二個為字串,第三個引數為模板的屬性或方法
getattr函式是這樣工作的,在模組中查詢是否有包括第二個引數的屬性或方法,如果有,則返回找到的這個屬性或方法名,如果沒有則返回第三個引數的屬性或方法,第三個引數是以預設值的方式存在的。
python 常用自省
1.type 返回物件型別,in 78 type os out 78 2.hasattr and getattr 分別判斷物件是否有某個屬性及獲得某個屬性,in 79 a lovely python in 80 hasattr a,split out 80 true in 81 getattr a,...
python反射 自省
反射 自省 的簡單理解 通過類名例項化物件 得到類的所有屬性和函式,並實現呼叫 簡單示例 coding utf 8 class user object def init self self.name abc self.age 18 defintroduce self print my name is...
python反射(自省)
前幾天用owlready構建rdf檔案時,使用類定義實體,屬性和資料屬性,類名就是乙個object,所有建立例項都需要例項類,但是現在資料有很多,我需要讓他們自動建立類的例項,他們的型別為字串,我需要把他們轉為該字串對應的類名,這裡提供了乙個方法 eval 例如name nametype 字串 cl...