📦 فصل ۱۴: ماژول‌ها و پکیج‌ها در پایتون

""

چرا ماژول و پکیج مهم‌اند؟

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


۱۴.۱ ماژول چیست و چطور یک ماژول بسازیم؟

ماژول در پایتون، basically یک فایل *.py هست که توش می‌تونی فانکشن، کلاس یا حتی کد معمولی بنویسی و بعداً تو برنامه‌های دیگه با import کردن ازش استفاده کنی.

نمونه ماژول ساده بسازیم:

مثلاً یک فایل به نام my_utils.py کنار پروژه‌ات بذار:

# فایل my_utils.py

def salam(name):
    print(f"سلام، {name}!")

def jam(a, b):
    return a + b

حالا در فایل اصلی (یا هر فایل دیگه):

import my_utils

my_utils.salam("رضا")
print("جمع:", my_utils.jam(3, 4))

نکته: اگر فایل ماژول کنار فایل برنامه‌ات باشه، بی‌دردسر پیدا میشه؛ اگر جاش متفاوت بود، باید مسیر رو مدیریت کنی.


۱۴.۲ ماژول‌های استاندارد پایتون (built-in modules)

پایتون خودش کلی ماژول آماده داره که می‌تونی بدون نصب اضافی استفاده کنی، مثل:

  • math (محاسبات ریاضی)
  • random (تولید اعداد تصادفی)
  • os (کار با سیستم عامل)
  • sys (ورودی/خروجی و اطلاعات محیط اجرا)
  • datetime (مدیریت تاریخ و زمان)

مثال واقعی

import math
print(math.sqrt(16))   # خروجی : 4.0

import random
print(random.randint(1, 10))   # یک عدد تصادفی بین 1 تا 10

۱۴.۳ نصب و استفاده از ماژول‌های جانبی (Third-Party Modules)

گاهی تایید می‌کنی ماژولی که می‌خوای توی پایتون نیست، پس باید نصبش کنی (مثلاً pandas یا requests):

pip install requests

و بعدش در کدت:

import requests
res = requests.get("https://api.github.com")
print(res.status_code)

۱۴.۴ پکیج چیست و فرقش با ماژول؟

پکیج ساختاری از پوشه‌هاست که شامل چند ماژول میشه. هر پوشه پایتونی که داخلش یک فایل __init__.py (حتی خالی!) گذاشته باشی، یک پکیج حساب میشه.

نمونه:

myproject/
├── main.py
└── tools/
    ├── __init__.py
    ├── math_utils.py
    └── string_utils.py

حالا می‌تونی تو main.py اینطوری صدا بزنی:

from tools.math_utils import add
add(1, 2)

یا

import tools.string_utils as su
su.reverse_string("hello")

۱۴.۵ واردکردن و مدیریت ماژول‌ها و پکیج‌ها

  • می‌تونی یک تابع یا کلاس خاص رو وارد کنی:
    python from math import sqrt print(sqrt(25))
  • یا کل ماژول رو وارد کنی، و از نام ماژول استفاده کنی.
  • اگر اسم ماژول بلنده یا دوست داشتی، می‌تونی یک اسم مستعار (alias) بذاری:
    python import numpy as np

🔎 نکات حرفه‌ای

  • برای اینکه ساختار پروژه‌ات حرفه‌ای بشه، منطقی تقسیم‌بندی کن: هر چیز مرتبط رو تو یک فایل یا یک پکیج.
  • اسم ماژول و پکیج فقط با حروف کوچک انگلیسی باشه و از اعداد، – یا فاصله استفاده نکن (underline اوکیه).
  • اگر برنامه بزرگ شد، ساختار پوشه‌ها رو شبیه به نمونه بالا بچین.

🟩 تمرین عملی

یک ماژول ساده به اسم my_calc.py بساز که دو تابع ضرب و تقسیم دریافت کنه؛ در یک فایل جدا با import کردن از اون استفاده کن.
اگر خواستی پروژه‌ات رو تو پوشه بذار، با ساخت پکیج امتحانش کن!

محمد وب‌سایت

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *