python getattr setattr_python 内建函数setattr() getattr()

setattr(object,name,value):

作用:设置object的名称为name(type:string)的属性的属性值为value,属性name可以是已存在属性也可以是新属性。

getattr(object,name,default):

作用:返回object的名称为name的属性的属性值,如果属性name存在,则直接返回其属性值;如果属性name不存在,则触发AttribetError异常或当可选参数default定义时返回default值。

>>> class attribute():

... def __init__(self):

... self.attribute_1='i am attribute 1'

... self.attribute_2='i am attribute 2'

...

>>> result=attribute()

>>> dir(result)

['__doc__', '__init__', '__module__', 'attribute_1', 'attribute_2']

>>> getattr(result,'attribute_1')

'i am attribute 1'

>>> getattr(result,'attribute_3')

Traceback (most recent call last):

File "", line 1, in

AttributeError: attribute instance has no attribute 'attribute_3'

>>> getattr(result,'attribute_3','i am attribute 3')

'i am attribute 3'

>>> dir(result)

['__doc__', '__init__', '__module__', 'attribute_1', 'attribute_2']

>>> getattr(result,'attribute_2')

'i am attribute 2'

>>> setattr(result,'attribute_2','i am changed')

>>> getattr(result,'attribute_2')

'i am changed'

>>> setattr(result,'attribute_4','i am new one')

>>> dir(result)

['__doc__', '__init__', '__module__', 'attribute_1', 'attribute_2', 'attribute_4']

你可能感兴趣的:(python,getattr,setattr)