__all__ در پایتون یعنی چی؟
What does __all__ mean in Python?
__all__ در پایتون چی هست و چه کاربردی داره؟
در پایتون، متغیر __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 در دسترس نخواهند بود.