23 / 59

Python Modules

Modullar bilan tanishish

Dasturimiz kattalashib borgani sari, u ko'plab qatorlardagi kodni o'z ichiga olishi mumkin. Hamma narsani bitta faylga joylashtirish o'rniga, kodlarni ularning vazifasiga qarab alohida fayllarga ajratish uchun modullardan foydalanishimiz mumkin. Bu kodimizni tartibli va parvarish qilish osonroq qiladi.

Modul — muayyan vazifani bajaruvchi kodni o'z ichiga olgan fayl. Modul o'zgaruvchilar, funksiyalar, klasslar va h.k.ni o'z ichiga olishi mumkin. Keling, bir misolni ko'ramiz,

Keling, modul yarataylik. Quyidagini yozib, example.py nomi bilan saqlang.

example.py
# Python Module addition

def add(a, b):

   result = a + b
   return result

Bu yerda biz example nomli modul ichida add() funksiyasini aniqladik. Funksiya ikkita sonni oladi va ularning yig'indisini qaytaradi.

Pythonda modullarni import qilish

Modul ichidagi e'lonlarni boshqa modulga yoki Pythonning interaktiv interpretatoriga import qilishimiz mumkin.

Buning uchun import kalit so'zidan foydalanamiz. Avval aniqlagan example modulimizni import qilish uchun, Python promptida quyidagini yozamiz.

example.py
import example

Bu example ichida aniqlangan funksiyalarning nomlarini to'g'ridan-to'g'ri joriy belgilar jadvaliga (symbol table) import qilmaydi. U faqat example modul nomini u yerga import qiladi.

Modul nomidan foydalanib, funksiyaga nuqta . operatori orqali murojaat qilishimiz mumkin. Masalan:

example.py
example.add(4,5) # 9 ni qaytaradi

Eslatma:

  • Python ko'plab standart modullarga ega. Python standart modullarining to'liq ro'yxati va ulardan foydalanish holatlarini ko'rib chiqishingiz mumkin.
  • Standart modullar biz o'zimiz belgilagan modullarni import qilgandagidek usulda import qilinishi mumkin.

Python standart kutubxona modullarini import qilish

Python standart kutubxonasi 200 dan ortiq modulni o'z ichiga oladi. Biz ehtiyojimizga qarab modulni import qilishimiz mumkin.

Aytaylik, biz pi qiymatini olishni xohlaymiz, avval math modulini import qilamiz va math.pidan foydalanamiz. Masalan,

example.py
# standart math modulini import qilish 
import math

# pi qiymatini olish uchun math.pi'dan foydalanish
print("The value of pi is", math.pi)

Natija

kod
The value of pi is 3.141592653589793

Pythonda importni qayta nomlash bilan

Pythonda modulni qayta nomlab ham import qilishimiz mumkin. Masalan,

example.py
# modulni qayta nomlab import qilish
import math as m

print(m.pi)

# Natija: 3.141592653589793

Bu yerda biz math modulini m deb qayta nomladik. Bu ba'zi holatlarda yozish vaqtini tejashi mumkin.

Shuni yodda tutingki, endi bizning ko'lamimizda math nomi tanilmaydi. Shuning uchun math.pi yaroqsiz, m.pi esa to'g'ri implementatsiya.

Python from...import operatori

Modulni butunlay import qilmasdan, undan muayyan nomlarni import qilishimiz mumkin. Masalan,

example.py
# math modulidan faqat pi'ni import qilish
from math import pi

print(pi)

# Natija: 3.141592653589793

Bu yerda biz math modulidan faqat pi atributini import qildik.

Barcha nomlarni import qilish

Pythonda quyidagi konstruksiya yordamida moduldagi barcha nomlarni (e'lonlarni) import qilishimiz mumkin:

example.py
# standart math modulidan barcha nomlarni import qilish
from math import *

print("The value of pi is", pi)

Bu yerda biz math modulidagi barcha e'lonlarni import qildik. Bunga pastki chiziq (_) bilan boshlanadiganlardan (private e'lonlar) tashqari, bizning ko'lamimizda ko'rinadigan barcha nomlar kiradi.

Hamma narsani yulduzcha (*) belgisi bilan import qilish yaxshi dasturlash amaliyoti hisoblanmaydi. Bu identifikator uchun takroriy e'lonlarga olib kelishi mumkin. Bu shuningdek kodimizning o'qilishini ham qiyinlashtiradi.

dir() tayyor funksiyasi

Pythonda modul ichidagi barcha funksiya nomlarini ro'yxatlash uchun dir() funksiyasidan foydalanishimiz mumkin.

Masalan, ilgari biz example modulida add() funksiyasini aniqlagan edik.

example modulida dirdan quyidagicha foydalanishimiz mumkin:

example.py
print(dir(example))
kod
['__builtins__',
'__cached__',
'__doc__',
'__file__',
'__initializing__',
'__loader__',
'__name__',
'__package__',
'add']

Bu yerda biz nomlarning saralangan ro'yxatini (add bilan birga) ko'rishimiz mumkin. Pastki chiziq bilan boshlanadigan boshqa barcha nomlar modul bilan bog'liq standart Python atributlari (foydalanuvchi belgilagan emas).

Masalan, __name__ atributi modulning nomini o'z ichiga oladi.

example.py
import example

example.__name__

# Natija: 'example'

Joriy nom maydonimizda (namespace) aniqlangan barcha nomlarni hech qanday argumentsiz dir() funksiyasi yordamida bilib olish mumkin.

example.py
a = 1
b = "hello"

import math

print(dir())
kod
['__builtins__', '__doc__', '__name__', 'a', 'b', 'math', 'pyscripter']
QBilimingizni sinab ko'ring
1 / 3

1. Modul nima?