🔹 مفهوم: همه با شکل معمولی iter(iterable) آشنا هستیم. اما کمتر کسی میدونه که iter() یک فرم دو آرگومانهای به شکل iter(callable, sentinel) داره!
🔹 کاربرد واقعی: خواندن فایلهای حجیم یا Stream دیتابیس/شبکه تکهتکه (Chunk) تا زمانی که به یک مقدار خاص (Sentinel) برسی، بدون نیاز به نوشتن حلقه while True و شرطهای اضافه!
# خواندن یک فایل خطبهخط یا بلوکی تا رسیدن به خط خالی:
with open('data.txt', 'r') as f:
# حلقه تا زمانی ادامه پیدا میکنه که خروجی f.readline برابر '' (خط خالی) بشه
for line in iter(f.readline, ''):
process(line.strip())
🔹 به چه دردی میخوره؟
کد فوقالعاده تمیز، پایتونیک و بدون نیاز به تعریف متغیرهای موقت درون حلقه میشه.
🐍 @python_rd