فایل __init__.py چه کاربردی داره؟
What is __init__.py for?
فایل __init__.py چه نقشی در پایتون داره و چرا ازش استفاده میکنیم؟ آیا باید توی همه پوشههای پروژه پایتون این فایل رو داشته باشیم؟
فایل __init__.py توی پایتون نقش خیلی مهمی داره، چون این فایل نشون میده که یه پوشه باید بهعنوان یه بسته (package) در نظر گرفته بشه. اگه یه پوشه فایل __init__.py داشته باشه، پایتون میفهمه که میتونه از این پوشه بهعنوان یه بسته استفاده کنه و فایلها و ماژولهای داخل اون رو ایمپورت کنه.
تو نسخههای قدیمیتر پایتون (مثل 2.x)، حتماً باید توی هر پوشهای که میخواستی بهعنوان یه بسته شناسایی بشه، یه __init__.py بذاری. اما توی نسخههای جدیدتر (مثل 3.x)، دیگه الزامی نیست، ولی اگه میخوای مطمئن بشی که کد توی نسخههای مختلف پایتون درست کار میکنه، بهتره که این فایل رو بذاری.
این فایل میتونه خالی باشه یا اینکه کد داشته باشه. مثلاً میتونی توش یه سری کد بذاری که وقتی بسته ایمپورت میشه اجرا بشه. یا حتی میتونی توی __init__.py مشخص کنی که چه چیزهایی از بسته توی زمان ایمپورت در دسترس باشن.
مثال ساده از یه __init__.py خالی:
# __init__.py
مثال __init__.py با کد:
# __init__.py # Importing specific modules to be available directly from .module1 import ClassA from .module2 import function_b
خلاصه اینکه، اگه میخوای پوشههات بهعنوان بسته شناسایی بشن، بهتره یه فایل __init__.py توشون بذاری، حتی اگه خالی باشه!