پرسش

چرا کد پایتون در یک تابع سریع‌تر اجرا می‌شود؟

Why does Python code run faster in a function?

وقتی کد پایتونم رو داخل یک تابع قرار می‌دم، سرعت اجرای کد بیشتر می‌شه. می‌خواستم بدونم دلیل این اتفاق چیه؟ چرا وقتی کد داخل تابع هست، سریع‌تر اجرا می‌شه؟ این موضوع به بهینه‌سازی‌های خاص پایتون مربوط می‌شه یا دلیل دیگه‌ای داره؟

1403/06/06
پاسخ
رضا دولتی عاشق برنامه نویسی و هوش مصنوعی!
بیوگرافی رضا دولتی

وقتی کد پایتون داخل یک تابع قرار می‌گیره، سرعت اجرای اون به دلایلی بیشتر می‌شه. اولین دلیل اینه که پایتون از یک ساختار بهینه‌سازی به نام local variable استفاده می‌کنه. وقتی شما متغیرهایی داخل تابع تعریف می‌کنید، پایتون اون‌ها رو به‌عنوان متغیر محلی (local) در نظر می‌گیره که دسترسی بهشون سریع‌تر از متغیرهای سراسری (global) هست.

وقتی شما کد رو بیرون از تابع اجرا می‌کنید، دسترسی به متغیرها به‌صورت سراسری انجام می‌شه و این باعث کاهش سرعت می‌شه. همچنین، تابع‌ها به‌صورت کلی به پردازنده اجازه می‌دهند تا از بهینه‌سازی‌های سطح پایین مثل حافظه کش بهتر استفاده کنه. به این ترتیب، وقتی کد داخل تابع باشه، پردازنده می‌تونه بهینه‌تر عمل کنه و سرعت اجرای کد افزایش پیدا کنه.

def my_function():
    # Variables inside a function are treated as local variables
    x = 10
    y = 20
    return x + y
# Outside of a function, variable access is slower because they are treated as global variables
x = 10
y = 20
result = x + y

کد بالا نشون می‌ده که چطور تعریف متغیرها داخل یک تابع می‌تونه بهینه‌تر باشه. وقتی متغیرها داخل تابع تعریف می‌شن، پایتون سریع‌تر بهشون دسترسی پیدا می‌کنه و این باعث افزایش سرعت اجرای کد می‌شه.

این نکته‌ها باعث می‌شه که همیشه توصیه بشه کدهای پایتون رو داخل توابع قرار بدید تا از مزایای بهینه‌سازی‌ها استفاده کنید.

پاسخ: 1403/06/06
آخرین آپدیت: 1403/08/14