Modul — loyiha kattalashgani sari muqarrar bo’ladigan tushuncha. Butun kodni bitta faylga sig’dirib bo’lmaydi; uni mantiqiy bo’laklarga — modullarga ajratamiz. Modul tushunchasini bilmasdan turib zamonaviy loyihada ishlab bo’lmaydi, chunki katta tizimlar yuzlab modulga bo’lingan.
Modul — Python kodini o’z ichiga olgan
.pyfayl. Undagi funksiya, sinf va o’zgaruvchilarni boshqa fayllardaimportorqali ishlatish mumkin. Bir necha modul birlashib paket (paperga tashkil qilingan modullar) hosil qiladi.
O’z modulingizni yaratish
Faraz qilaylik, hisob.py nomli fayl yaratdik va unga funksiya joyladik:
# hisob.py fayli
def yigindi(a, b):
return a + b
def kopaytma(a, b):
return a * b
Endi boshqa faylda bu modulni import qilib ishlatamiz:
import hisob
print(hisob.yigindi(15, 27))
print(hisob.kopaytma(6, 7))
42
42
import hisob butun faylni yuklaydi, so’ng undagi funksiyalarga hisob. prefiksi orqali murojaat qilamiz. Bu kodni tartibli va qayta ishlatiladigan qiladi.
import ning turli shakllari
Modulni import qilishning bir necha usuli bor. Ularni jadvalda solishtiramiz:
| Shakl | Ma’nosi |
|---|---|
import hisob |
butun modulni yuklaydi |
from hisob import yigindi |
faqat bitta funksiyani oladi |
from hisob import * |
hammasini oladi (tavsiya etilmaydi) |
import hisob as h |
modulga qisqa nom beradi |
Amalda ko’ramiz:
from hisob import yigindi
import hisob as h
print(yigindi(10, 5)) # prefiksisiz
print(h.kopaytma(4, 4)) # qisqa nom bilan
15
16
from ... import kerakli funksiyani to’g’ridan-to’g’ri chaqirishga imkon beradi. as esa uzun modul nomiga qulay taxallus beradi — masalan, import pandas as pd.
Standart kutubxona modullari
Python o’zi bilan yuzlab tayyor modul olib keladi — bu standart kutubxona. Ularni o’rnatish shart emas, shunchaki import qiling:
import random
import os
print(random.randint(1, 100))
print(os.getcwd())
57
/home/farrux/loyiha
random — tasodifiy sonlar, os — operatsion tizim bilan ishlash uchun. Keyingi darslarda datetime, math, json kabi modullarni alohida o’rganamiz.
name va modulni himoyalash
Modul ham import qilinishi, ham mustaqil ishga tushirilishi mumkin. Ikkisini ajratish uchun maxsus naqsh ishlatiladi:
def salom():
print("Salom, UzbekDevs!")
if __name__ == "__main__":
salom() # faqat fayl to'g'ridan-to'g'ri ishga tushsa bajariladi
Salom, UzbekDevs!
if __name__ == "__main__": bloki fayl python hisob.py bilan bevosita ishga tushganda ishlaydi, lekin boshqa joyda import qilinganda ishlamaydi. Bu professional Python kodining doimiy naqshi — buni yodda saqlang.
Xulosa
Bu darsda modul yaratish, import ning turli shakllari, standart kutubxona modullari va __name__ == "__main__" himoyasini o’rgandik. Modullar kodni tartibli, qayta ishlatiladigan va boshqariladigan qiladi. Keyingi darsda datetime moduli — sana va vaqt bilan ishlashga o’tamiz.