تقنية

Timer.repeat في بايثون: هل repeat=0 مثل number=0؟

صفر عينات دون إعداد أو عبارة
المثال الأساسي. [1] [2]

عدد القياسات وعدد تنفيذات العبارة مستويان مختلفان. [1] [2]

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

لا؛ repeat=0 لا يجري قياسًا، أما number=0 فقد ينفذ الإعداد. [1] [2]

  • المثال يستعمل repeat=0 وnumber=2. [1] [2]
  • عدد العينات 0، والسجل []. [1] [2]
  • مع repeat=2,number=0 نحصل على عينتين. [1] [2]
  • في المقارنة ينفذ الإعداد مرتين، والعبارة صفر مرات. [1] [2]
  • اختبرنا 3.12.14؛ لا نستنتج زمنًا صفريًا. [1] [2]

المثال

from timeit import Timer
events=[]
t=Timer(lambda:events.append('stmt'),
 setup=lambda:events.append('setup'))
samples=t.repeat(repeat=0,number=2)
print(len(samples))
print(events)

[1] [2]

الحلقتان

المصدر هنا يكرر القياس بحسب repeat. داخل كل قياس ينفذ الإعداد مرة، ثم العبارة بحسب number. لذلك يطبع المثال 0 ثم []. تغيير الوسيطين إلى 2 و0 يترك في السجل setup مرتين. [1] [2]

عينتان وإعدادان دون العبارة
مقارنة الوسيطين. [1] [2]

النطاق

المؤشر هنا عدد النتائج وسجل دالتين مؤلفتين، لا قيم الأزمنة. عدم تنفيذ العبارة لا يجعل القياس صفر المدة. استعملنا مؤقت المكتبة الافتراضي دون استبداله. [1] [2]

المراجع

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

للتوسع: بحث عن لغات البرمجة

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