مفاهیم ماژولها، پکیجها، کتابخانهها و شیگرایی در پایتون
مفاهیم ماژولها، پکیجها، کتابخانهها و شیگرایی در پایتون
تعریف مفاهیم عمومی پایتون
یکی از زیباییهای زبان برنامهنویسی پایتون، شعار معروف آن یعنی «Batteries Included» (همراه با باتری) است؛ به این معنا که پایتون از همان لحظه اول ابزارهای فراوانی در اختیار شما میگذارد تا نیاز به ساخت همهچیز از صفر نداشته باشید. در این مقاله، پلهپله با نقشه راه ابزارهای پایتون، تفاوت ماژول و کتابخانه، انواع توابع، متدها و ورود به دنیای شیگرایی (OOP) آشنا میشویم.
بخش ۱: ماژول، پکیج و کتابخانه چیست؟
برای درک تفاوت این اصطلاحات، یک کتابخانه عمومی را تصور کنید:

کتابخانه (Library)
└── 📦 پکیج (Package)
└── 📄 ماژول (Module)
└── ⚙️ توابع، کلاسها و متغیرها
- ماژول (Module): یک فایل ساده پایتون با پسوند
.pyکه شامل متغیرها، توابع و کلاسها است (مانند یک برگه یا فصل کتاب). - پکیج (Package): یک پوشه حاوی چندین ماژول مرتبط.
- کتابخانه (Library): مجموعهای بزرگ از پکیجها و ماژولها که برای حل یک مسئله یا حوزه خاص طراحی شده است.
بخش ۲: دسته بندی کتابخانهها در پایتون
تمام کتابخانهها در پایتون به سه دسته زیر تقسیم میشوند:
۱. توابع و ابزارهای توکار
ابزارها توکار (Built-in) در هسته پایتون تعبیه شدهاند. نیازی به نصب و حتی نیازی به import کردن ندارند.
- مثالها:
print(),len(),type(),range()
۲. کتابخانه استاندارد پایتون
کتابخانه استاندارد پایتون (Python Standard Library) همراه با نصب پایتون روی سیستم شما قرار میگیرند. نیازی به نصب اینترنتی ندارند، اما برای استفاده از آنها باید از دستور import استفاده کنید.
- مثالها:
math(عملیات ریاضی)،random(تولید دادههای تصادفی)،datetime(تاریخ و زمان)،os(تعامل با سیستمعامل).
۳. کتابخانههای شخص ثالث
کتابخانههای شخص ثالث (Third-Party Libraries) ابزارهایی هستند که توسط توسعهدهندگان در سراسر جهان نوشته شدهاند. همراه پایتون نصب نیستند و باید از طریق ابزار pip (مدیریت پکیج پایتون) نصب شوند.
- نحوه نصب در ترمینال:
pip install numpy - مثالها:
numpy,pandas,requests,matplotlib
بخش ۳: انواع توابع در پایتون
در پایتون توابع به سه دسته اصلی تقسیم میشوند:
- توابع توکار (Built-in Functions): آماده و بدون نیاز به تعریف (مانند
abs(-5)). - توابع تعریفشده توسط کاربر (User-Defined Functions): با کلیدواژه
defساخته میشوند:
def greet(name):
return f"Hello, {name}!"
- توابع بینام یا لامبدا (Lambda Functions): توابع یکخطی و کوچک:
square = lambda x: x ** 2
بخش ۴: شیگرایی؛ کلاس، شیء، ویژگی و متد
برای درک شیگرایی (Object-Oriented Programming یا OOP)، دنیای واقعی را مدلسازی میکنیم:
- کلاس (Class): نقشهی ساخت یا قالب اصلی (Blueprint). مثل نقشهی ساخت یک اتومبیل.
- شیء (Object): نمونهی واقعی و ساختهشده از روی نقشه. مثل خودرویی با پلاک مشخص در خیابان.
- ویژگی (Attribute): دادهها و خصوصیات شیء (مانند رنگ خودرو، مدل، سال ساخت).
- متد (Method): کارهایی که شیء میتواند انجام دهد؛ متد همان «تابعی» است که درون یک کلاس تعریف شده و به شیء وابسته است (مانند روشن شدن، بوق زدن، ترمز گرفتن).
تفاوت کلیدی تابع و متد
- تابع (Function): مستقل فراخوانی میشود:
len(my_list) - متد (Method): با علامت نقطه (
.) روی یک شیء صدا زده میشود:my_list.append(10)
