আপনি একটি জেনারেটর ফাংশন লিখতে পারেন যা আজ থেকে শুরু হওয়া তারিখের অবজেক্টগুলি ফিরিয়ে দেয়:
import datetime
def date_generator():
from_date = datetime.datetime.today()
while True:
yield from_date
from_date = from_date - datetime.timedelta(days=1)
এই জেনারেটর আজ থেকে শুরু হয়ে একবারে একদিন পিছনে যাওয়ার তারিখগুলি ফেরত দেয়। এখানে প্রথম 3 তারিখ কীভাবে নেবেন তা এখানে:
>>> import itertools
>>> dates = itertools.islice(date_generator(), 3)
>>> list(dates)
[datetime.datetime(2009, 6, 14, 19, 12, 21, 703890), datetime.datetime(2009, 6, 13, 19, 12, 21, 703890), datetime.datetime(2009, 6, 12, 19, 12, 21, 703890)]
একটি লুপ বা তালিকা বোঝার উপর এই পদ্ধতির সুবিধা হ'ল আপনি যতবার চান ফিরে যেতে পারেন।
সম্পাদন করা
একটি ফাংশনের পরিবর্তে জেনারেটর এক্সপ্রেশন ব্যবহার করে আরও কমপ্যাক্ট সংস্করণ:
date_generator = (datetime.datetime.today() - datetime.timedelta(days=i) for i in itertools.count())
ব্যবহার:
>>> dates = itertools.islice(date_generator, 3)
>>> list(dates)
[datetime.datetime(2009, 6, 15, 1, 32, 37, 286765), datetime.datetime(2009, 6, 14, 1, 32, 37, 286836), datetime.datetime(2009, 6, 13, 1, 32, 37, 286859)]