hasattr(object, name) 本函數是用來判斷對象object的屬性(name表示)是否存在。如果屬性(name表示)存在,則返回True,否則返回False。參數object是一個對象,參數name是一個屬性的字元串表示。 輸出結果: getattr(object, name[,de ...
hasattr(object, name)
本函數是用來判斷對象object的屬性(name表示)是否存在。如果屬性(name表示)存在,則返回True,否則返回False。參數object是一個對象,參數name是一個屬性的字元串表示。
1 #coding:UTF8 2 3 class Foo(): 4 def __init__(self): 5 self.x = 123 6 def test(x): 7 self.x = x 8 9 foo = Foo() 10 print(hasattr(foo, 'x')) #判斷對象有x屬性 11 print(hasattr(foo, 'y')) 12 print(hasattr(foo, 'test'))
輸出結果:
1 True 2 False 3 True
getattr(object, name[,default])
獲取對象object的屬性或者方法,如果存在列印出來,如果不存在,列印出預設值,預設值可選。需要註意的是,如果是返回的對象的方法,返回的是方法的記憶體地址,如果需要運行這個方法,可以在後面添加一對括弧。
1 #coding:UTF8 2 3 class Foo(): 4 name = 'Tom' 5 def run(self): 6 return 'hello world' 7 8 f = Foo() 9 print getattr(f,'name') #獲取name屬性,存在就列印出來。 10 print getattr(f, 'run') #獲取run方法,存在就列印出方法的記憶體地址。 11 print getattr(f,'run')() #獲取run方法,後面加括弧可以將這個方法運行。 12 #print getattr(f,'age') #獲取一個不存在的屬性。 13 print getattr(f, "age","18") #若屬性不存在,返回一個預設值。
輸出結果:
1 Tom 2 <bound method Foo.run of <__main__.Foo instance at 0x0000000002658B08>> 3 hello world 4 18
setattr(object, name, values)
給對象的屬性賦值,若屬性不存在,先創建再賦值。
1 #coding:UTF8 2 3 class Foo(): 4 name = 'Tom' 5 def run(self): 6 return 'hello world' 7 8 f = Foo() 9 10 print hasattr(f,'age') #判斷屬性是否存在 11 setattr(f, "age","18") #若屬性不存在,返回一個預設值。 12 print hasattr(f,'age') #判斷屬性是否存在
1 False 2 TrueView Code