پرسش

تفاوت بین ماژول و پکیج در پایتون چیست؟

What\'s the difference between a module and package in Python?

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

1403/06/07
پاسخ

این دو تا مفهوم در پایتون خیلی مهم هستن و دونستن تفاوتشون بهت کمک می‌کنه تا ساختار کدها رو بهتر درک کنی.

ماژول (Module) در پایتون در واقع یک فایل منفرده که شامل کد پایتون می‌شه. این فایل می‌تونه کلاس، تابع یا متغیر داشته باشه. برای استفاده از این ماژول‌ها، فقط کافیه که از کلمه کلیدی import استفاده کنی و فایل مربوطه رو وارد کنی. مثلاً فرض کن یه فایل به اسم math_functions.py داری؛ حالا می‌تونی ازش به این شکل استفاده کنی:

import math_functions
result = math_functions.add(2, 3)

اما پکیج (Package) یک قدم جلوتر از ماژوله. پکیج در واقع یک پوشه (directory) هست که شامل چندین ماژول (فایل) می‌شه و با یک فایل __init__.py شناخته می‌شه. این فایل __init__.py می‌تونه خالی باشه یا می‌تونی کدهایی داخلش بنویسی. هدفش اینه که پایتون بفهمه این پوشه باید به عنوان یک پکیج شناسایی بشه و می‌شه ماژول‌های داخل اون پوشه رو وارد کرد.

فرض کن یه پکیج داری به اسم utilities که شامل دو ماژول file_operations.py و string_operations.py هست. برای استفاده از این پکیج، می‌تونی به این شکل عمل کنی:

from utilities import file_operations, string_operations
processed_string = string_operations.capitalize("hello")

با استفاده از پکیج‌ها می‌تونی کدها رو بهتر سازماندهی کنی و کدهای مرتبط به هم رو داخل یک پوشه نگه داری.

به طور خلاصه:

- ماژول: یک فایل منفرد پایتون.

- پکیج: یک پوشه که شامل چندین ماژول هست و دارای فایل __init__.py می‌باشد.

هر دوشون ابزارهای خوبی برای ساختاردهی به کدها هستن و انتخاب بین اونها بستگی به نیازت داره.

پاسخ: 1403/06/07
آخرین آپدیت: 1403/08/17