پرسش

__all__ در پایتون یعنی چی؟

What does __all__ mean in Python?

__all__ در پایتون چی هست و چه کاربردی داره؟

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

در پایتون، متغیر __all__ یک لیست است که درون ماژول‌ها تعریف می‌شود و مشخص می‌کند که کدام نام‌ها (توابع، کلاس‌ها و متغیرها) از ماژول باید در هنگام استفاده از from module import * در دسترس باشند. این به شما اجازه می‌دهد که کنترل بیشتری روی اینکه چه چیزی از ماژول شما به بیرون صادر شود، داشته باشید.

به طور خلاصه:

- تعریف __all__ یک لیست از رشته‌ها است که نام‌های مشخص شده در آن، به عنوان public API ماژول در نظر گرفته می‌شوند.

- استفاده وقتی از from module import * استفاده می‌کنید، تنها نام‌های موجود در لیست __all__ وارد فضای نام می‌شوند.

اگر __all__ در ماژول تعریف نشود، به طور پیش‌فرض، from module import * همه نام‌های غیر _private (که با _ شروع نمی‌شوند) را وارد می‌کند.

# example_module.py
__all__ = ['public_function', 'PublicClass']
def public_function():
    pass
class PublicClass:
    pass
def private_function():
    pass
class PrivateClass:
    pass

با این تعریف، وقتی از from example_module import * استفاده کنید، تنها public_function و PublicClass وارد فضای نام می‌شوند و private_function و PrivateClass در دسترس نخواهند بود.

پاسخ: 1403/06/02
آخرین آپدیت: 1403/07/26