Middle
Python-ში რა არის იტერატორები და გენერატორები და რა განსხვავებაა მათ შორის?
sobes.tech AI
პასუხი AI-სგან
Python-ში ინტერატორი არის ობიექტი, რომელიც ახორციელებს მეთოდებს __iter__() და __next__(). იგი საშუალებას აძლევს სერიულიად გადახედოთ კოლექციის ელემენტებს, გარეშე რომ ყველა მონაცემი ერთდროულად ჩაიტვირთოს მეხსიერებაში.
გენერატორი არის სპეციალური ტიპის ინტერატორი, რომელიც შექმნილია ფუნქციებით, სადაც გამოიყენება სიტყვა yield ან გენერატორული გამოთქმები. გენერატორები ფრთხილად ითვლის მნიშვნელობებს საჭიროების მიხედვით, რაც ხარჯავს მეხსიერებას და საშუალებას აძლევს მუშაობა პოტენციურად უსასრულო სერილებთან.
ძირითადი განსხვავებები:
- ინტერატორი არის საერთო ინტერფეისი ელემენტების სერიული გადახედვისთვის.
- გენერატორი არის კომფორტული გზა ინტერატორების შექმნისთვის
yield-ის გამოყენებით.
გენერატორის მაგალითი:
def count_up_to(n):
count = 1
while count <= n:
yield count
count += 1
for number in count_up_to(5):
print(number)
აქ, count_up_to არის გენერატორი, რომელიც აბრუნებს 1-დან n-მდე რიცხვებს, ერთდროულად.