Python'da OOP nima — obyektga yo'naltirilgan dasturlash

Shu paytgacha ma’lumotni alohida (o’zgaruvchilar, ro’yxatlar), harakatni esa alohida (funksiyalar) yozib keldik. OOP — obyektga yo’naltirilgan dasturlash — bularni birlashtirishning boshqacha usuli. Bu darsda OOP nima ekanini va u qanday muammoni yechishini ko’ramiz.

Muammo: bog’liq ma’lumot tarqoq

Aytaylik, o’quvchi haqidagi ma’lumotni saqlaymiz: ism, yosh, baholar. Bu ma’lumotlar bir-biriga bog’liq, lekin alohida o’zgaruvchilarda turadi:

ism = "Aziz"
yosh = 20
baholar = [90, 85, 78]

Uchta o’quvchi bo’lsa — to’qqizta o’zgaruvchi. Bir o’quvchining o’rtacha bahosini hisoblaydigan funksiya yozsak, unga har safar shu ma’lumotlarni qo’lda uzatishimiz kerak. Ma’lumot va u bilan bog’liq harakat tarqoq qoladi.

G’oya: ma’lumot va harakatni birga jamlash

OOP shunday deydi: bir-biriga bog’liq ma’lumot va harakatni bitta “narsa” ichiga jamla. Bu “narsa” — obyekt deyiladi.

O’quvchi obyekti ichida ham ma’lumot (ism, yosh, baholar), ham harakat (o’rtacha bahoni hisoblash) birga turadi. Endi ular tarqoq emas — bir joyda.

Klass va obyekt

OOP ikki tushunchaga tayanadi:

  • Klass — obyektning chizmasi (shabloni). U “o’quvchi qanday bo’ladi” degan qolipni belgilaydi.
  • Obyekt — shu chizma asosida yasalgan aniq nusxa. Bitta klassdan istagancha obyekt yasash mumkin.

Uy qurilishiga o’xshatsak: klass — bitta chizma, obyektlar — o’sha chizma bo’yicha qurilgan uylar. Chizma bitta, uylar ko’p va har biri mustaqil.

Python

Oquvchi — klass (chizma). aziz va dilnoza — undan yasalgan ikkita mustaqil obyekt. Har biri o’z ma’lumotini saqlaydi.

Nega OOP kerak

OOP katta dasturlarni tartibli ushlashga yordam beradi:

  • Bog’liq narsalar birga turadi — ma’lumot va harakat tarqalmaydi.
  • Qayta ishlatish oson — bitta klassdan ko’p obyekt yasaladi.
  • Kod real dunyoga o’xshaydi — “o’quvchi”, “mahsulot”, “buyurtma” kabi tushunchalar kodda bevosita aks etadi.

Kichik skriptlar uchun OOP shart emas, lekin dastur o’sgani sari uning foydasi ortadi.

Amaliy mashq

Tarqoq ma’lumotni jamlang:

  1. Bitta kitob haqidagi ma’lumotni uchta alohida o’zgaruvchida yozing: kitob_nomi, kitob_muallifi, kitob_yili;
  2. endi ikkinchi kitob qo’shing — yana uchta o’zgaruvchi kerak bo’ldimi?
  3. shu ma’lumotni bitta lug’atga jamlang;
  4. o’nta kitob uchun nima qilish kerakligini o’ylab ko’ring;
  5. qog’ozda yozing: kitob klassida qanday atribut va qanday harakat (metod) bo’lishi kerak?

Bu darsda kod yozmasangiz ham bo’ladi — muammoni his qilish muhimroq.

Qisqacha xulosa

  • OOP — bir-biriga bog’liq ma’lumot va harakatni bitta obyekt ichiga jamlash usuli.
  • Klass — obyekt yasaladigan chizma; obyekt — shu chizmadan yasalgan aniq nusxa.
  • Bitta klassdan istagancha mustaqil obyekt yasash mumkin.
  • Python’da ro’yxat, string kabi tanish narsalar ham aslida obyekt.
  • OOP dastur kattalashganda kodni tartibli va qayta ishlatiladigan qiladi.

Keyingi darsda klass va obyekt yaratishniclass, __init__ va self ni batafsil ko’ramiz.

Bu dars foydali bo'ldimi?

marta ko'rildi