类的内建函数
1.__getattr__ 、 __getitem__ 和 __iter__
__getattr__(self,attr) 指obj.attr 当obj搜索一个属性attr时,任何局部对象首先被找到(即实例中的__dict__),如果搜索失败,则__getattr__会被调用。
__getitem__(self,attr) 指obj[attr] ,对象被切片时,执行的函数
__iter__(self) 指遍历一个对象obj时,yield出来的值
class luck(object):
cl_attr = "cl_full"
def __init__(self):
self.ob_attr = "obj_happy"
def __getattr__(self,key):
return "getattr"
def __getitem__(self,key):
return "getitem"
def __iter__(self):
for i in ['it_goodday','it_goodnight']:
yield imyluck = luck()
print myluck.cl_attr #获取类属性
>>cl_fullprint myluck.ob_attr #获取对象属性
>>obj_happy
print myluck.other #获取没有再类及对象中定义的属性
>> getattr #调用了__getattr__
print myluck[3] #获取分片值
>> getitem #调用了__getitem__
for key in myluck:
print key
>>it_goodday #调用了__iter__
>>it_goodnight

本文介绍了Python中类的三个重要内建函数:__getattr__、__getitem__ 和 __iter__ 的使用方法与应用场景。通过具体示例展示了如何通过这些内建函数实现对象属性的动态获取、对象的切片操作以及对象的迭代过程。
1020

被折叠的 条评论
为什么被折叠?



