ماژولها در پایتون، فایلهایی با پسوند .py
هستند که شامل کد پایتون میباشند. آنها به شما اجازه میدهند تا کد خود را به بخشهای منطقی تقسیم کنید و از نوشتن کد تکراری جلوگیری کنید. به عبارت دیگر، ماژولها امکان استفاده مجدد از کدها را فراهم میکنند و به سازماندهی بهتر پروژههای بزرگ کمک میکنند.
در اینجا به طور جامع و گام به گام به نحوه ایجاد و استفاده از ماژولها در پایتون میپردازیم:
۱. ایجاد یک ماژول:
برای ایجاد یک ماژول، کافیست یک فایل پایتون با پسوند .py
ایجاد کنید و کدهای مورد نظر خود را در آن بنویسید. به عنوان مثال، یک فایل به نام my_module.py
ایجاد میکنیم و کد زیر را در آن قرار میدهیم:
Python
# my_module.py
def greet(name):
"""این تابع یک خوشامدگویی به نام داده شده چاپ میکند."""
print(f"Hello, {name}!")
def add(x, y):
"""این تابع دو عدد را با هم جمع میکند و نتیجه را برمیگرداند."""
return x + y
PI = ۳.۱۴۱۵۹ # یک متغیر ثابت
در این مثال، my_module.py
یک ماژول است که شامل دو تابع (greet
و add
) و یک متغیر (PI
) است.
۲. استفاده از یک ماژول (import):
برای استفاده از توابع و متغیرهای تعریف شده در یک ماژول، باید آن را با استفاده از دستور import
به برنامه خود وارد کنید. چند روش برای این کار وجود دارد:
- وارد کردن کل ماژول:
Python
import my_module
my_module.greet("Ali") # خروجی: Hello, Ali!
result = my_module.add(۵, ۳)
print(result) # خروجی: ۸
print(my_module.PI) # خروجی: ۳.۱۴۱۵۹
در این روش، با استفاده از my_module.function_name
یا my_module.variable_name
به اعضای ماژول دسترسی پیدا میکنیم.
- وارد کردن اعضای خاص از ماژول:
Python
from my_module import greet, add
greet("Sara") # خروجی: Hello, Sara!
result = add(۲, ۷)
print(result) # خروجی: ۹
# دیگر نیازی به پیشوند my_module نیست
در این روش، فقط توابع greet
و add
از ماژول my_module
وارد میشوند و میتوان مستقیماً از آنها بدون پیشوند my_module
استفاده کرد.
- وارد کردن همه اعضای ماژول (به طور کلی توصیه نمیشود):
Python
from my_module import *
greet("Reza") # خروجی: Hello, Reza!
result = add(۱۰, ۴)
print(result) # خروجی: ۱۴
print(PI) # خروجی: ۳.۱۴۱۵۹
این روش تمام اعضای ماژول را وارد میکند، اما میتواند باعث ابهام در کد شود، به خصوص اگر نام توابع یا متغیرها با نامهای موجود در برنامه شما تداخل داشته باشد. به همین دلیل، به طور کلی توصیه نمیشود.
- نامگذاری مستعار برای ماژول (as):
Python
import my_module as mm
mm.greet("Hasan") # خروجی: Hello, Hasan!
result = mm.add(۶, ۹)
print(result) # خروجی: ۱۵
این روش به شما اجازه میدهد تا یک نام مستعار کوتاهتر برای ماژول انتخاب کنید.
۳. جستجوی ماژولها:
وقتی شما یک ماژول را import
میکنید، پایتون به ترتیب در مکانهای زیر به دنبال آن میگردد:
- دایرکتوری فعلی
- لیست دایرکتوریهای تعریف شده در متغیر محیطی
PYTHONPATH
- دایرکتوریهای پیشفرض نصب پایتون
شما میتوانید مسیر جستجوی ماژولها را با استفاده از sys.path
بررسی کنید:
Python
import sys
print(sys.path)
۴. بستهها (Packages):
بستهها روشی برای سازماندهی ماژولها در ساختارهای سلسله مراتبی هستند. یک بسته در واقع یک دایرکتوری است که شامل فایل __init__.py
(که میتواند خالی باشد) و سایر ماژولها و زیربستهها است.
به عنوان مثال، یک بسته به نام my_package
با ساختار زیر ایجاد میکنیم:
my_package/
├── __init__.py
├── module1.py
└── module2.py
برای استفاده از ماژولها در یک بسته، از نقطه (.
) برای دسترسی به آنها استفاده میکنیم:
Python
import my_package.module1
from my_package import module2
my_package.module1.some_function()
module2.another_function()
فایل __init__.py
میتواند برای مقداردهی اولیه بسته یا تعریف اعضایی که باید مستقیماً از بسته قابل دسترسی باشند، استفاده شود.
خلاصه:
ماژولها و بستهها ابزارهای قدرتمندی برای سازماندهی کد و استفاده مجدد از آن در پایتون هستند. با استفاده از آنها میتوانید پروژههای بزرگ و پیچیده را به بخشهای کوچکتر و قابل مدیریت تقسیم کنید.