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

ตัวสร้างสามารถใช้เพื่อสร้างตัววนซ้ำใน Python ได้หรือไม่?


ใช่ เราสามารถสร้างตัวสร้างโดยใช้ตัววนซ้ำใน python การสร้างตัววนซ้ำนั้นง่าย เราสามารถสร้างตัวสร้างโดยใช้คำสั่งผลตอบแทนของคำหลัก

เครื่องกำเนิด Python เป็นวิธีที่ง่ายและง่ายในการสร้างตัววนซ้ำ และส่วนใหญ่จะใช้ในการประกาศฟังก์ชันที่ทำงานเหมือนตัววนซ้ำ

ตัวสร้างเป็นฟังก์ชันที่เราสามารถวนซ้ำได้มากกว่าหนึ่งค่าในแต่ละครั้ง ซึ่งเป็นไปได้มากที่สุดในชีวิตประจำวัน โปรแกรมเมอร์ทุกคนจะใช้อ็อบเจกต์ที่ทำซ้ำได้ เช่น รายการ สตริง และ Dict เป็นต้น

iterator เป็นอ็อบเจ็กต์ที่สามารถวนซ้ำได้ผ่านการวนซ้ำ

ตัวอย่างต่อไปนี้แสดงให้เห็นว่า Generators แนะนำคำสั่ง Yield ใน python ซึ่งทำงานเหมือนกับการคืนค่า

ตัวอย่าง

def generator():
   print("program working sucessfully")
   yield 'x'
   yield 'y'
   yield 'z'
generator()

ผลลัพธ์

<generator object generator at 0x000000CF81D07390>

ด้วยการใช้ for loop เราสามารถสร้างเครื่องกำเนิดไฟฟ้าได้

ตัวอย่าง

for i in generator():
print(i)

ผลลัพธ์

program working sucessfully
x
y
z


วัตถุ iterators รองรับสองวิธี 1.__iter__method และ 2.__next__method

เมธอด __iter__ จะคืนค่าออบเจ็กต์ iterator เอง ส่วนใหญ่จะใช้สำหรับวนซ้ำและในงบ

เมธอด __next__ จะคืนค่าถัดไปจาก iterator หากไม่มีรายการส่งคืนอีก มันควรเพิ่ม StopIteration Exception

ตัวอย่าง

class function(object):
   def __init__(self, lowtemp, hightemp):
      self.current = lowtemp
      self.high = hightemp
   def __iter__(self):
      'Returns itself as an iterator object'
      return self
   def __next__(self):
      'Returns the next value till current is lower than high'
      if self.current > self.high:
         raise StopIteration
      else:
         self.current += 1
         return self.current - 1
c = function(3,20)
for i in c:
print(i, end=' ')

ผลลัพธ์

3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20