TGViewer
| کانال توسعه‌دهندگان پایتون | | کانال توسعه‌دهندگان پایتون | @developixpython · 7.69K subscribers
Post #149 2.58K
در کد زیر سعی شده با استفاده از یک decorator ساده، تعداد دفعات صدا زده شدن هر تابع در یک دیکشنری سراسری ذخیره شود، اما به‌خاطر یک اشتباه در نحوه استفاده از global، شمارنده به‌درستی عمل نمی‌کند و ممکن است خطا یا رفتار اشتباه داشته باشد.

سوال:
در این کد چه چیزی باید اصلاح شود تا شمارندهٔ فراخوانی توابع به‌درستی کار کند و call_counts بدون خطا و به شکل صحیح به‌روزرسانی شود؟

call_counts = {}

def count_calls(func):
def wrapper(*args, **kwargs):
global call_counts
if func.__name__ not in call_counts:
call_counts = {}
call_counts[func.__name__] = call_counts.get(func.__name__, 0) + 1
return func(*args, **kwargs)
return wrapper

@count_calls
def slow_add(a, b):
return a + b

for _ in range(3):
slow_add(1, 2)

print(call_counts)


🔖 #Python #پایتون

👤 Developix

💎 Channel: @DevelopixPython
  • ❤ 2
  • 👍 1
More from @developixpython
  1. Sep 30, 2026💠 نسخه جدید کتابخانه FastAPI منتشر شده است 🔸 ارتقا از نسخه 0.141.1 به 0.142.2 🔖 #fastap…
  2. Sep 8, 2026آرگومان پیش‌فرض لیست؛ باگ خفن ولی بی‌سر‌و‌صدا 😅 خیلی‌ها (حتی حرفه‌ای‌ها) یه زمانی این سوت…
  3. Sep 6, 2026🔥 پروژه: مهارت‌های تحقیق آکادمیک با Claude Code اگر برای پروژه‌های پایتونی مقاله، مستندات…
  4. Aug 24, 2026خیلی وقت‌ها با باگ‌های عجیب روبه‌رو می‌شویم که فقط به خاطر یک فاصلهٔ اضافی یا خط‌جدید ته ر…
  5. Aug 12, 2026🔥 پروژه: ‏DSPy فریم‌ورک برنامه‌نویسی LLM DSPy یه فریم‌ورک پایتونی از آزمایشگاه NLP اس…
  6. Aug 9, 2026مدیریت درست resource مثل فایل، connection دیتابیس یا lock، کلی باگ و Memory Leak بالقوه را…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →