Python内置函数——hasattr&setattr&getattr&delattr
python内置函数——hasattr&setattr&getattr&delattr
hasattr & setattr & getattr & delattrhasattr(object,name):用于判断一个对象里中是否存在name这一特性.setattr(object, name, value):该函数给对象中的属性赋值,该属性若不存在,则会在对象里创建新的属性delattr(object, name):删除指定对象的属性,可以配合hasattr使用getattr(object, name[, default]),object为对象名,naem为对象属性(必须是字符串),default为name属性不存在时指定的返回内容(可以是字符串,也可以是部分指令),若对象中存在该属性,则函数返回object.name,否则返回default中的内容,若省略default,则返回 AttributeError.In [4]: class test(object): ...: name = "john" ...: def greet(self): ...: print "hello,my name is %s"% name ...:In [5]: a = test()In [6]: hasattr(a,'name')Out[6]: TrueIn [7]: hasattr(a,'greet')Out[7]: TrueIn [8]: setattr(a,'name','mark')In [9]: print a.namemarkIn [10]: getattr(a,'name','no exit')Out[10]: 'mark'In [11]: getattr(a,'greet','no exit')Out[11]: <bound>>In [12]: getattr(a,'age','no exit')Out[12]: 'no exit'In [13]: setattr(a,'name','jane')In [14]: a.nameOut[14]: 'jane'In [15]: setattr(a,'age',20)In [16]: a.ageOut[16]: 20In [17]: getattr(a,'nationality',setattr(a,'nationality','Englend'))Out[17]: 'Englend'In [18]: a.nationalityOut[18]: 'Englend'In [19]: if hasattr(a,'age'): ....: delattr(a,'age') ....:In [20]: a.age---------------------------------------------------------------------------AttributeError Traceback (most recent call last)<ipython-input-20-d50340e1fbb7> in <module>()----> 1 a.ageAttributeError: 'test' object has no attribute 'age'In [21]: b = test()In [22]: b.nationality---------------------------------------------------------------------------AttributeError Traceback (most recent call last)<ipython-input-22-fd8c7f39aa50> in <module>()----> 1 b.nationalityAttributeError: 'test' object has no attribute 'nationality'</module></ipython-input-22-fd8c7f39aa50></module></ipython-input-20-d50340e1fbb7></bound>