تقنية

sched في بايثون: هل run غير الحاجب ينفّذ الحدث المستقبلي؟

الساعة 10 تعيد 5 دون استدعاء وعند 15 ينفذ استدعاء واحد
تشغيلان وساعة مؤلفة. [1] [2]

نفحص موعدًا بساعة مؤلفة. [1] [2]

الخلاصة السريعة

لا ينفذ الحدث المستقبلي هنا؛ يعيد الفرق حتى موعده. [1] [2]

  • تبدأ الساعة المؤلفة عند 10. [1] [2]
  • نجدول إضافة R بعد 5 وحدات، عند 15. [1] [2]
  • يعيد التشغيل الأول 5 وتبقى القائمة فارغة. [1] [2]
  • عند 15 يعيد تشغيل جديد None وتظهر R. [1] [2]
  • اختبرنا 3.12.14 دون انتظار أو خيط خلفي. [1] [2]

المثال

import sched
now=[10];seen=[]
s=sched.scheduler(
 lambda:now[0],lambda n:None)
s.enter(5,1,seen.append,argument=('R',))
print(s.run(blocking=False),seen)
now[0]=15
print(s.run(blocking=False),seen)

[1] [2]

المخرجان 5 [] ثم None ['R']. [1] [2]

فرق الزمن والاستدعاء

القيمة 5 فرق، و15 موعد بوحداتنا. تغيير الساعة وحده لا يشغّل الدالة؛ نعيد run. [1] [2]

الموعد 15 والفرق من الساعة 10 هو 5
فرق نسبي وموعد مطلق. [1] [2]

حدود التجربة

الانتظار معطل؛ لا نقيس دقة التوقيت أو التزامن. [1] [2]

المراجع

  1. Python: sched
  2. CPython 3.12.14: sched.py
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.