Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Iterator Types ใน Python: __iter__ และ __next__


Iterator ใน Python มีเมธอดสองตัวสำคัญ:

__iter__()

คืน iterator object ถ้าคลาสรองรับการวนซ้ำหลายแบบ อาจมีเมธอดอื่นเพิ่ม

__next__()

คืนอิลิเมนต์ถัดไป เมื่อหมดจะ raise StopIteration

ตัวอย่าง: Custom Iterator คำนวณ x^x

class PowerIter:
    def __init__(self, max=0):
        self.max = max
    def __iter__(self):
        self.term = 0
        return self
    def __next__(self):
        if self.term <= self.max:
            element = self.term ** self.term
            self.term += 1
            return element
        else:
            raise StopIteration

powIterObj = PowerIter(10)
powIter = iter(powIterObj)
for i in range(10):
    print(next(powIter))

ผลลัพธ์

1
1
4
27
256
3125
46656
823543
16777216
387420489