📦 ماژولها (Modules) در پایتون
ماژولها فایلهای پایتونی هستند که شامل توابع، کلاسها و متغیرهای قابل استفاده مجدد میباشند. با استفاده از ماژولها میتوانید کد خود را سازماندهی کرده و از تکرار کد جلوگیری کنید. پایتون دارای کتابخانه استاندارد بسیار غنی با ماژولهای متعدد است.
🔹 وارد کردن ماژول با import
# وارد کردن کل ماژول
import math
import random
# استفاده از توابع ماژول
print(f"Pi: {math.pi}")
print(f"Square root of 16: {math.sqrt(16)}")
print(f"Random number between 1 and 10: {random.randint(1, 10)}")
⏳ برای اجرا دکمه را بزنید...
🔹 وارد کردن با نام مستعار (alias)
# استفاده از alias برای کوتاهتر کردن نام
import math as m
import random as rnd
print(f"Pi: {m.pi}")
print(f"Random number: {rnd.randint(1, 100)}")
⏳ برای اجرا دکمه را بزنید...
🔹 وارد کردن بخشی از ماژول با from ... import
# فقط توابع مورد نیاز را وارد کنید
from math import pi, sqrt, pow
from random import randint
print(f"Pi: {pi}")
print(f"Square root: {sqrt(25)}")
print(f"Power: {pow(2, 3)}")
print(f"Random: {randint(1, 6)}")
⏳ برای اجرا دکمه را بزنید...
🔹 وارد کردن همه چیز با from ... import *
⚠️ این روش توصیه نمیشود زیرا باعث تداخل نامها میشود.
# وارد کردن همه توابع (ممکن است باعث تداخل شود)
from math import *
print(f"Pi: {pi}")
print(f"Cosine: {cos(0)}")
print(f"Factorial: {factorial(5)}")
🔹 ماژولهای پرکاربرد کتابخانه استاندارد
🔹 کار با تاریخ و زمان (datetime)
import datetime
# تاریخ و زمان فعلی
now = datetime.datetime.now()
print(f"Current date and time: {now}")
# تاریخ فعلی
today = datetime.date.today()
print(f"Today: {today}")
# ساخت تاریخ دلخواه
birthday = datetime.date(2000, 5, 15)
print(f"Birthday: {birthday}")
# محاسبه تفاوت تاریخها
days_since_birth = (today - birthday).days
print(f"Days since birthday: {days_since_birth}")
⏳ برای اجرا دکمه را بزنید...
🔹 تعامل با سیستمعامل (os)
import os
# دریافت مسیر جاری
current_dir = os.getcwd()
print(f"Current directory: {current_dir}")
# لیست فایلهای دایرکتوری جاری
files = os.listdir(".")
print(f"Files in current directory: {files}")
# بررسی وجود فایل
if os.path.exists("example.txt"):
print("example.txt exists!")
else:
print("example.txt does not exist.")
⏳ برای اجرا دکمه را بزنید...
🔹 اطلاعات سیستم و خط فرمان (sys)
import sys
# نسخه پایتون
print(f"Python version: {sys.version}")
# آرگومانهای خط فرمان
print(f"Command line arguments: {sys.argv}")
# مسیرهای جستجوی ماژول
print(f"Module search path: {sys.path[:3]}")
⏳ برای اجرا دکمه را بزنید...
🔹 ساخت ماژول شخصی
شما میتوانید فایلهای پایتونی خود را به عنوان ماژول استفاده کنید.
فایل my_module.py (ماژول شخصی)
# my_module.py
def greet(name):
return f"Hello, {name}!"
def add(a, b):
return a + b
PI = 3.14159
استفاده از ماژول شخصی
# import my_module
print(my_module.greet("Saba"))
print(my_module.add(5, 3))
print(my_module.PI)
🔹 پکیجها (Packages)
پکیجها مجموعهای از ماژولها هستند که در یک دایرکتوری با فایل __init__.py قرار دارند.
# ساختار یک پکیج
# my_package/
# __init__.py
# module1.py
# module2.py
# subpackage/
# __init__.py
# module3.py
# استفاده از پکیج
# from my_package import module1
# from my_package.subpackage import module3
🔹 نصب پکیجها با pip
# نصب یک پکیج
# pip install requests
# نصب نسخه خاص
# pip install requests==2.28.0
# مشاهده پکیجهای نصب شده
# pip list
# حذف یک پکیج
# pip uninstall requests
🔹 مثال جامع: مدیریت زمان و فایل
import datetime
import os
import json
class DataLogger:
def __init__(self, filename):
self.filename = filename
self.logs = []
def log(self, message):
"""ثبت پیام با زمان فعلی"""
timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
self.logs.append({"timestamp": timestamp, "message": message})
def save(self):
"""ذخیره لاگها در فایل JSON"""
with open(self.filename, "w") as file:
json.dump(self.logs, file, indent=4)
print(f"Logs saved to {self.filename}")
def load(self):
"""بارگذاری لاگها از فایل JSON"""
if os.path.exists(self.filename):
with open(self.filename, "r") as file:
self.logs = json.load(file)
print(f"Logs loaded from {self.filename}")
else:
print(f"File {self.filename} not found.")
def show(self):
"""نمایش همه لاگها"""
print("\n--- Logs ---")
for entry in self.logs:
print(f"[{entry['timestamp']}] {entry['message']}")
print("---\n")
# استفاده
logger = DataLogger("logs.json")
# ثبت چند پیام
logger.log("Application started")
logger.log("User logged in")
logger.log("Data processed successfully")
# نمایش لاگها
logger.show()
# ذخیره لاگها
logger.save()
# بارگذاری لاگها (در یک جلسه جدید)
logger.load()
logger.show()
⏳ برای اجرا دکمه را بزنید...
📌 نکات کلیدی
- ✅ ماژولها با
importوارد میشوند. - ✅ با
from ... importمیتوانید بخشی از ماژول را وارد کنید. - ✅
import ... asبرای نام مستعار استفاده میشود. - ✅
from ... import *توصیه نمیشود (تداخل نامها). - ✅ کتابخانه استاندارد پایتون شامل ماژولهای
math،random،datetime،os،sys،json،csvو ... است. - ✅ میتوانید ماژولهای شخصی خود را بسازید.
- ✅ پکیجها مجموعهای از ماژولها در یک دایرکتوری هستند.
- ✅ از
pipبرای نصب پکیجهای خارجی استفاده کنید. - ✅ ماژولها به سازماندهی و قابلیت استفاده مجدد کد کمک میکنند.