سطح مقدماتی (Beginner Level)
در برنامهنویسی، نوشتن تمام کدها در یک فایل واحد (مثلاً main.py) برای پروژههای بزرگ غیرممکن و گیجکننده است. پایتون به ما اجازه میدهد کدها را در فایلهای جداگانه ذخیره کنیم و هر جا نیاز بود آنها را وارد (Import) کنیم. به هر فایل پایتون که حاوی تعاریف و دستورات باشد، یک ماژول (Module) میگویند.
۱. وارد کردن ماژولها (Importing)
سادهترین راه برای استفاده از کدهای یک ماژول، استفاده از دستور import است. پایتون دارای یک "کتابخانه استاندارد" (Standard Library) قدرتمند است که ماژولهای زیادی مثل math (ریاضیات) یا random (اعداد تصادفی) را در خود دارد.
مثال ۱: استفاده از ماژول math
در این مثال از ماژول داخلی ریاضی برای محاسبه جذر و عدد پی استفاده میکنیم.
مثال ۲: استفاده از ماژول random
برای تولید اعداد شانسی یا انتخاب تصادفی از لیست.
۲. روشهای مختلف Import
گاهی اوقات نمیخواهیم کل ماژول را وارد کنیم و فقط به یک تابع خاص نیاز داریم. یا شاید اسم ماژول خیلی طولانی باشد و بخواهیم آن را تغییر دهیم.
مثال ۱: استفاده از from ... import
وقتی فقط به یک بخش خاص نیاز داریم. در این صورت دیگر نیازی نیست اسم ماژول را قبل از تابع بنویسیم.
مثال ۲: تغییر نام با as (Aliasing)
اگر اسم ماژول طولانی است یا با اسم متغیرهای شما تداخل دارد، میتوانید به آن لقب بدهید.
سطح پیشرفته (Professional Level)
در سطح حرفهای، بحث فقط استفاده از ماژولهای آماده نیست. شما باید بتوانید ماژولهای خودتان را بسازید، ساختار پکیج (Package) ایجاد کنید و مفاهیمی مثل __name__ را درک کنید.
۱. ساخت ماژول شخصی (Creating Custom Modules)
هر فایل .py یک ماژول است. اگر فایلی به نام my_tools.py بسازید، میتوانید در فایل دیگری آن را import my_tools کنید.
این کدها چون به فایلهای جانبی نیاز دارند و در یک محیط ایزوله اجرا نمیشوند، به صورت Static نمایش داده میشوند.
مثال ۱: فایل ماژول (my_tools.py)
# محتویات فایل: my_tools.py
def greeting(name):
return f"Hello, {name} from custom module!"
TAX_RATE = 0.09
مثال ۲: استفاده از ماژول شخصی (main.py)
# محتویات فایل: main.py
import my_tools
print(my_tools.greeting("Ali"))
print(f"Tax is: {my_tools.TAX_RATE}")
۲. مفهوم if __name__ == "__main__":
این یکی از پرتکرارترین الگوها در پایتون حرفهای است. وقتی فایلی را import میکنید، تمام کدهای آن اجرا میشوند. اگر بخواهیم کدی (مثل تستها) فقط زمانی اجرا شود که فایل مستقیماً اجرا شده (نه ایمپورت)، از این شرط استفاده میکنیم.
مثال ۱: ساختار صحیح یک ماژول حرفهای
۳. پکیجها (Packages) و فایل __init__.py
یک پکیج در واقع پوشهای است که شامل چندین ماژول است. برای اینکه پایتون یک پوشه را به عنوان پکیج بشناسد (در نسخههای قدیمیتر الزامی و در نسخههای جدید توصیه شده)، باید فایلی به نام __init__.py در آن باشد.
ساختار دایرکتوری نمونه:
my_project/
│
├── main.py
└── ecommerce/ <-- Package
├── __init__.py
├── database.py <-- Module
└── payments.py <-- Module
مثال ۱: محتویات __init__.py
این فایل میتواند خالی باشد، یا میتواند تعیین کند چه چیزهایی هنگام from ecommerce import * در دسترس باشند.
# ecommerce/__init__.py
# این باعث میشود وقتی پکیج ایمپورت شد، ماژول دیتابیس هم در دسترس باشد
from . import database
print("Ecommerce package initialized!")
۴. کار با ماژولهای سیستمی (sys و os)
برای تعامل با سیستم عامل و مفسر پایتون از این دو ماژول حیاتی استفاده میشود.
مثال ۱: اطلاعات سیستم (sys)
مثال ۲: تعامل با سیستم عامل (os)
مدیریت فایلها و پوشهها.

import os
# گرفتن دایرکتوری فعلی
current_dir = os.getcwd()
print(f"Current Directory: {current_dir}")
# ساخت یک پوشه جدید
os.mkdir("new_folder")