Python自定义类实现迭代器的具体方法
本文详细讲解如何在Python中通过自定义类实现迭代器协议。核心在于实现__iter__()和__next__()两个特殊方法,前者返回迭代对象本身,后者负责返回下一个元素并处理StopIteration异常。通过具体代码示例,展示了数值递减迭代及对象属性管理的实际应用,帮助开发者掌握Python迭代器的底层机制。
1、说明
迭代器同样适用于用户自定义的类别。要使一个对象成为可迭代对象,该类必须支持两种特定的方法:__iter__()和__next__()。其中,__iter__()方法用于返回迭代器对象本身,而__next__()方法则负责返回序列中的下一个元素。
2、实例
class example(object):
def __init__(self,num):
self.num=num
def __iter__(self):
return self
def __next__(self):
if self.num <= 0:
raise StopIteration
tmp = self.num
self.num -= 1
return tmp
a = example(3)
print(a.__next__())
print(a.__next__())
print(a.__next__())
print(a.__next__())
知识点扩展
python自定义类并使用的方法
class Person:
def __init__(self, first, middle, last, age):
self.first = first;
self.middle = middle;
self.last = last;
self.age = age;
def __str__(self):
return self.first + ' ' + self.middle + ' ' + self.last + \
' ' + str(self.age)
def initials(self):
return self.first[0] + self.middle[0] + self.last[0]
def changeAge(self, val):
self.age += val
myPerson = Person('Raja', 'I', 'Kumar', 21)
print(myPerson)
myPerson.changeAge(5)
print(myPerson)
print(myPerson.initials())
运行结果如下:
Raja I Kumar 21
Raja I Kumar 26
RIK
到此这篇关于python迭代器自定义类的具体方法的文章就介绍到这了,更多相关python迭代器怎样自定义类内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













