ماژول در پایتون چیست؟
در پایتون، Module یا ماژول فایلی است که معمولاً شامل کدهای پایتون مانند توابع، متغیرها و کلاسها است. استفاده از ماژولها باعث میشود بتوانیم کدهای خود را مرتبتر و قابل استفاده مجدد بنویسیم.
ماژول چیست؟
یک فایل با پسوند .py میتواند یک ماژول پایتون باشد.
برای مثال اگر فایلی با نام math_tools.py داشته باشیم،
میتوانیم توابع مختلفی را داخل آن قرار دهیم و در فایلهای دیگر
از آنها استفاده کنیم.
چرا از ماژولها استفاده میکنیم؟
- مرتبتر شدن کدها
- استفاده مجدد از کد
- تقسیم یک پروژه بزرگ به چند فایل کوچکتر
- استفاده از امکانات آماده پایتون
- سادهتر شدن مدیریت پروژه
دستور import در پایتون
برای استفاده از یک ماژول معمولاً از دستور
import استفاده میکنیم.
import math
در این مثال ماژول داخلی math را وارد کردهایم.
این ماژول تعدادی ابزار ریاضی آماده در اختیار ما قرار میدهد.
استفاده از ماژول math
برای مثال میتوانیم با استفاده از تابع
sqrt() جذر یک عدد را محاسبه کنیم:
import math
result = math.sqrt(25)
print(result)
خروجی:
5.0
در اینجا math.sqrt() یعنی تابع
sqrt را از ماژول math استفاده میکنیم.
استفاده از ثابتهای ماژول math
ماژول math فقط شامل تابع نیست و ثابتهای مفیدی نیز دارد.
برای مثال:
import math
print(math.pi)
متغیر math.pi مقدار تقریبی عدد پی را در اختیار ما قرار میدهد.
استفاده از from
گاهی اوقات نمیخواهیم کل ماژول را به صورت مستقیم صدا بزنیم.
میتوانیم یک تابع مشخص را با استفاده از from وارد کنیم.
from math import sqrt
print(sqrt(36))
خروجی:
6.0
در این حالت دیگر نیازی به نوشتن math.sqrt() نداریم
و میتوانیم مستقیماً از sqrt() استفاده کنیم.
استفاده از چند تابع با from
from math import sqrt, pi
print(sqrt(49))
print(pi)
استفاده از alias با as
با استفاده از as میتوانیم برای یک ماژول یا تابع
نام کوتاهتری انتخاب کنیم.
import math as m
print(m.sqrt(64))
در این مثال به جای نوشتن math از نام کوتاهتر
m استفاده کردهایم.
Alias برای یک تابع
from math import sqrt as s
print(s(81))
در اینجا تابع sqrt را با نام کوتاهتر
s استفاده کردهایم.
ماژول random در پایتون
یکی دیگر از ماژولهای داخلی پایتون، random است.
از آن میتوانیم برای تولید مقادیر تصادفی استفاده کنیم.
import random
number = random.randint(1, 10)
print(number)
در هر اجرا ممکن است یک عدد تصادفی بین ۱ تا ۱۰ دریافت کنیم.
انتخاب تصادفی از یک لیست
import random
names = ["Ali", "Sara", "Reza", "Mina"]
winner = random.choice(names)
print(winner)
تابع choice() یکی از اعضای لیست را به صورت تصادفی انتخاب میکند.
ماژول datetime
برای کار با تاریخ و زمان میتوانیم از ماژول
datetime استفاده کنیم.
import datetime
now = datetime.datetime.now()
print(now)
این کد تاریخ و زمان فعلی سیستم را نمایش میدهد.
ماژول os
ماژول os برای کار با سیستمعامل و فایلها و پوشهها
امکانات مختلفی در اختیار ما قرار میدهد.
import os
print(os.getcwd())
تابع getcwd() مسیر پوشه فعلی برنامه را نمایش میدهد.
ساخت ماژول شخصی
یکی از قابلیتهای مهم پایتون این است که خودمان هم میتوانیم ماژول بسازیم.
فرض کنید دو فایل زیر را در یک پوشه داریم:
my_math.py
main.py
ابتدا داخل فایل my_math.py یک تابع ایجاد میکنیم:
def add(a, b):
return a + b
سپس در فایل main.py میتوانیم این ماژول را وارد کنیم:
import my_math
result = my_math.add(2, 3)
print(result)
خروجی:
5
به این ترتیب تابعی که در فایل دیگری نوشتهایم را در برنامه خود استفاده کردیم.
چند ماژول داخلی مهم پایتون
| ماژول | کاربرد |
|---|---|
math |
محاسبات ریاضی |
random |
تولید و انتخاب تصادفی |
datetime |
کار با تاریخ و زمان |
os |
کار با سیستمعامل، فایلها و پوشهها |
تفاوت import و from ... import
| روش | مثال | نحوه استفاده |
|---|---|---|
| import | import math |
math.sqrt(25) |
| from import | from math import sqrt |
sqrt(25) |
| alias | import math as m |
m.sqrt(25) |
نکته مهم برای مبتدیان
ماژولها کمک میکنند پروژههای بزرگ را به قسمتهای کوچکتر تقسیم کنیم.
به جای اینکه تمام کدهای یک پروژه را در یک فایل قرار دهیم،
میتوانیم بخشهای مختلف برنامه را در فایلهای جداگانه قرار داده
و هر زمان که لازم بود آنها را با import وارد کنیم.
خلاصه درس
| دستور | کاربرد |
|---|---|
import |
وارد کردن یک ماژول |
from ... import |
وارد کردن بخش مشخصی از یک ماژول |
as |
تعیین نام مستعار |
math |
ابزارهای ریاضی |
random |
کار با مقادیر تصادفی |
datetime |
کار با تاریخ و زمان |
os |
کار با سیستمعامل و فایلها |
سؤالات متداول
ماژول در پایتون چیست؟
ماژول معمولاً یک فایل پایتون با پسوند .py است
که میتواند شامل توابع، متغیرها و کلاسها باشد.
دستور import چه کاری انجام میدهد؟
از import برای وارد کردن یک ماژول و استفاده از
امکانات آن در برنامه استفاده میکنیم.
تفاوت import و from چیست؟
با import معمولاً خود ماژول را وارد میکنیم،
اما با from ... import میتوانیم بخش مشخصی
مانند یک تابع را مستقیماً وارد کنیم.
آیا خودمان میتوانیم ماژول بسازیم؟
بله. هر فایل پایتون میتواند شامل کدهایی باشد که در فایلهای
دیگر پروژه با استفاده از import قابل استفاده هستند.