Python'da Modullar va Paketlar
Modul Nima?
Modul - bu Python kodini saqlovchi .py fayli bo'lib, unda funksiyalar, sinflar, o'zgaruvchilar yoki boshqa kodlar bo'lishi mumkin. Modullar kodni alohida fayllarga ajratish va uni boshqa dasturlarda qayta ishlatish imkonini beradi.
Modullarning afzalliklari:
- Tashkil qilish: Kodni mantiqiy guruhlarga ajratadi.
- Qayta ishlatish: Bir modulni turli loyihalarda ishlatish mumkin.
- Oson boshqarish: Katta loyihalarda kodni boshqarishni soddalashtiradi.
Python'da modullar ikki turga bo'linadi:
- Standart modullar: Python bilan birga keladigan modullar (masalan,
math,random,datetime). - Foydalanuvchi modullari: O'zingiz yozgan
.pyfayllar.
Modul Import Qilish
Modulni ishlatish uchun uni import kalit so'zi yordamida dasturga kiritish kerak. Quyidagi sintaksislar mavjud:
# Butun modulni import qilish
import math
print(math.sqrt(16)) # Chiqish: 4.0# Moduldan faqat kerakli elementni import qilish
from math import sqrt
print(sqrt(16)) # Chiqish: 4.0# Modulga qisqa nom berish
import random as rnd
print(rnd.randint(1, 10)) # Chiqish: 1 dan 10 gacha tasodifiy son# Moduldagi barcha elementlarni import qilish (tavsiya etilmaydi)
from math import *
print(pi) # Chiqish: 3.141592653589793Eslatma: from ... import * dan foydalanish tavsiya etilmaydi, chunki u nomlarning to'qnashuviga olib kelishi mumkin.
O'z Modulini Yaratish
O'z modulimizni yaratish uchun oddiygina .py fayl yaratamiz. Masalan, mymodule.py nomli fayl yarating va quyidagi kodni yozing:
# mymodule.py
def salom_ayt(ism):
return f"Salom, {ism}!"
PI = 3.14
class Mashina:
def __init__(self, model):
self.model = modelEndi bu modulni boshqa faylda ishlatish mumkin:
# main.py
import mymodule
print(mymodule.salom_ayt("Ali")) # Chiqish: Salom, Ali!
print(mymodule.PI) # Chiqish: 3.14
mashina = mymodule.Mashina("BMW")
print(mashina.model) # Chiqish: BMWEslatma: Modul fayli dastur bilan bir papkada bo'lishi kerak, aks holda yo'l (path) ko'rsatish talab qilinadi.
Paket Nima?
Paket - bu bir nechta modullarni o'z ichiga olgan papka. Paket yaratish uchun papkada __init__.py fayli bo'lishi kerak (Python 3.3+ da bu fayl ixtiyoriy, lekin yaxshi amaliyot sifatida qoldiriladi).
Paket Yaratish
mypackagenomli papka yarating.- Ichida
__init__.pyfaylini yarating (bo'sh bo'lsa ham bo'ladi). - Papkaga modullar qo'shing, masalan,
matematika.pyvasalomlashuv.py.
Misol tuzilmasi:
mypackage/
│── __init__.py
│── matematika.py
│── salomlashuv.pymatematika.py:
def qoshish(a, b):
return a + bsalomlashuv.py:
def salom_ayt(ism):
return f"Salom, {ism}!"Endi paketni import qilish:
from mypackage import matematika, salomlashuv
print(matematika.qoshish(5, 3)) # Chiqish: 8
print(salomlashuv.salom_ayt("Vali")) # Chiqish: Salom, Vali!Yoki aniq elementlarni import qilish:
from mypackage.matematika import qoshish
from mypackage.salomlashuv import salom_ayt
print(qoshish(5, 3)) # Chiqish: 8
print(salom_ayt("Vali")) # Chiqish: Salom, Vali!Standart Modullarga Misollar
Python'da ko'plab foydali standart modullar mavjud. Quyida eng mashhurlari:
math: Matematik operatsiyalar uchun.pythonimport math print(math.factorial(5)) # Chiqish: 120 print(math.cos(math.pi)) # Chiqish: -1.0random: Tasodifiy sonlar va tanlovlar uchun.pythonimport random print(random.choice(["olma", "banan", "uzum"])) # Tasodifiy meva print(random.randint(1, 100)) # 1-100 oralig'ida tasodifiy sondatetime: Sana va vaqt bilan ishlash uchun.pythonfrom datetime import datetime hozir = datetime.now() print(hozir) # Joriy sana va vaqtos: Operatsion tizim bilan ishlash uchun.pythonimport os print(os.getcwd()) # Joriy papka yo'lini chiqaradi
Tashqi Modullar va Paketlar
Python'da foydalanuvchilar tomonidan yaratilgan tashqi modullar va paketlarni pip yordamida o'rnatish mumkin. Mashhur tashqi paketlarga misollar:
requests: HTTP so'rovlar uchun.numpy: Ilmiy hisob-kitoblar uchun.pandas: Ma'lumotlar tahlili uchun.
O'rnatish misoli:
pip install requestsFoydalanish:
import requests
response = requests.get("https://api.github.com")
print(response.status_code) # Chiqish: 200 (agar muvaffaqiyatli bo'lsa)Modul va Paketlarni Yaratishda Maslahatlar
Nomlash: Modul nomlari kichik harflar bilan va
snake_caseuslubida bo'lishi kerak (masalan,my_module.py).Tuzilma: Paketlarda mantiqiy tuzilma saqlang, masalan, funksiyalar bo'yicha guruhlang.
Docstring: Har bir modul va funksiyaga
"""Izoh"""bilan izoh qo'shing.__name__: Modulni to'g'ridan-to'g'ri ishga tushirish yoki import qilishni farqlash uchun__name__dan foydalaning:python# mymodule.py def salom(): print("Salom, dunyo!") if __name__ == "__main__": salom() # Faqat modul to'g'ridan-to'g'ri ishga tushganda bajariladiYo'llar: Agar modul yoki paket boshqa papkada bo'lsa,
sys.pathga yo'l qo'shish mumkin:pythonimport sys sys.path.append("/path/to/your/package")
Amaliy Masalalar
Misol 1:
kalkulyator.pynomli modul yarating va unda qo'shish, ayirish, ko'paytirish funksiyalarini ta'riflang.python# kalkulyator.py def qoshish(a, b): return a + b def ayirish(a, b): return a - b def kopaytirish(a, b): return a * bpython# main.py from kalkulyator import qoshish, ayirish print(qoshish(5, 3)) # Chiqish: 8 print(ayirish(5, 3)) # Chiqish: 2Misol 2:
utilsnomli paket yar