💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۱۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ taheri
خطا در اجرا
محمدعلی رضا حل شده توسط محمدعلی رضا

 با سلام

در مورد این خطا راهنمایی بفرمایید

سلااااااااااااااااااااااااام

چشم

خطایی که بهتون داده اینه:

AttributeError: 'datetime.timedelta' object has no attribute 'second'

و گفته که این خطا در خط ۲۱ فایل test.py در wrapped رخ داده که خط زیر هست:

sec = duration.second

ترجمه خطایی که بهتون داده اینه:

خطای اتربیوت: ابجکت datetime.timedelta (که منظورش duration هست) اتربیوتی به اسم second نداره.

سعی کن با همین توضیحاتی که گفتم بفهمی مساله و خطایی که بهش خوردی از کجاست و حلش کنی.

جواب و راه حل کامل رو برات پایین‌تر گذاشتم اگر لازم داشتی.

 

 

 

وقتی ۲ تا ابجکت زمان datetime رو با هم جمع میکنی یا از هم کم میکنی نتیجه اش میشه ابجکتی از کلاس timedelta که attribute‌ها و method هاش متفاوت هستن و کلا یه کلاس دیگه است.

تو خط زیر زمان شروع رو از زمان پایان کم کردی و نتیجه اش رو ریختی که تو متغیر duration:

duration = end_time - start_time

که نتیجه این منها کردن ابجکتی از کلاس timedelta میشه.

کافیه تو خط بعدی بجای استفاده از اتربیوت second که مربوط به ابجکت‌های datetime هست از متد total_seconds استفاده کنی. در واقع خط ۲۱ فایل test.py رو باید به خط زیر تغییر بدی:

sec = duration.total_seconds()

تمام. باگ حل شد :)

 

بازم اگر سوالی داشتی در خدمتم.

بهترین پاسخ
محمدعلی رضا ۰۵ مرداد ۱۴۰۰، ۱۷:۱۷

سلام

خیلی خیلی ممنونم

بسیار جامع پاسخ سوال بنده را دادید

 

 

 

taheri ۰۶ مرداد ۱۴۰۰، ۰۶:۴۶