یادته اون باگ لعنتی که هر ریکوئست جدید همون timestamp قدیمی رو… — | کانال توسعه‌دهندگان | — TG.ME

یادته اون باگ لعنتی که هر ریکوئست جدید همون timestamp قدیمی رو برمی‌گردوند؟ معمولاً مقصر همچین چیزیه 👇

اینجا تو تابع اول، از datetime.now() به‌عنوان آرگومان پیش‌فرض استفاده شده. این مقدار فقط یک‌بار موقع تعریف تابع حساب می‌شه، نه هر بار صدا زدن تابع؛ برای همین همهٔ لاگ‌ها همون زمان اولی رو می‌گیرن.

تو نسخهٔ درست، پیش‌فرض رو None گذاشتیم و داخل تابع اگر timestamp تهی بود، تازه اون‌جا datetime.now() رو صدا می‌زنیم. این‌طوری هر بار یه زمان جدید و درست ثبت می‌شه.

خلاصه‌اش: اگه می‌خوای یه مقدار «الان» یا یه لیست/دیکشنری خالی پیش‌فرض داشته باشی، از آرگومان پیش‌فرض قابل تغییر یا dynamic استفاده نکن؛ None بذار و داخل تابع مقدارش رو بساز 😉

🔖 #Programming #برنامه_نویسی

👤 Developix

💎 Channel: @DevelopixChannel
👍5
۱۱ شهریور ۱۴۰۵ ۴۸۰ ۱