getattr和setattr

时间:2022-03-15 21:41:29
>>> class MyData():

    def __init__(self,name,phone):
self.name=name
self.phone=phone
def updatephone(self,newphone):
self.phone=newphone
print 'new phone is:',self.phone >>> data=MyData() Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
data=MyData()
TypeError: __init__() takes exactly 3 arguments (1 given) >>> data=MyData('xiaodeng',10086) >>> dir(data)
['__doc__', '__init__', '__module__', 'name', 'phone', 'updatephone'] #获取属性值
>>> getattr(data,'name')
'xiaodeng' >>> getattr(data,'phone')
10086 #设置属性值
>>> setattr(data,'name','xiaoDong') >>> dir(data)
['__doc__', '__init__', '__module__', 'name', 'phone', 'updatephone'] >>> data.__dict__
{'phone': 10086, 'name': 'xiaoDong'}
>>>