Python'da klass va obyekt yaratish
OOP darsida klass — chizma, obyekt esa shu chizmadan
yasalgan nusxa ekanini ko’rdik. Endi amaliyotga o’tamiz: Python’da klassni
qanday yozish va undan obyekt yasashni o’rganamiz. Uch kalit narsa bor:
class, __init__ va self.
class — klass yaratish
Klass class kalit so’zi bilan yaratiladi. Nomi katta harf bilan boshlanadi
(kelishuv bo’yicha):
class Oquvchi:
pass
pass — “hozircha ichi bo’sh” degani. Bu allaqachon ishlaydigan klass, faqat
ma’lumotsiz. Endi unga mazmun qo’shamiz.
__init__ — obyektni ma’lumot bilan yaratish
__init__ — maxsus metod: obyekt yasalgan paytda avtomatik chaqiriladi
va unga boshlang’ich ma’lumot beradi. Uni funksiya kabi
def bilan yozamiz:
class Oquvchi:
def __init__(self, ism, yosh):
self.ism = ism
self.yosh = yosh
Bu klass har obyekt yaratilganda ism va yosh ni qabul qiladi va ularni
obyekt ichiga saqlaydi.
self nima
self — hozirgi obyektning o’zi. self.ism = ism degani “shu obyektning
ism atributiga qabul qilingan ism qiymatini saqla”. self orqali har
obyekt o’z ma’lumotini alohida ushlaydi.
self har metodning birinchi parametri bo’ladi, lekin obyekt yasaganda
uni siz yozmaysiz — Python o’zi uzatadi.
Obyekt yasash
Klass tayyor. Endi undan obyekt yasaymiz — klass nomini funksiya kabi chaqiramiz:
Oquvchi("Aziz", 20) — bu chaqiruvda "Aziz" va 20 to’g’ridan-to’g’ri
__init__ ga boradi (self avtomatik). Atributga obyekt.atribut
ko’rinishida murojaat qilinadi: aziz.ism.
Har obyekt mustaqil
Muhim jihat: bir klassdan yasalgan obyektlar bir-biridan mustaqil. Birini o’zgartirish boshqasiga ta’sir qilmaydi:
Amaliy mashq
Birinchi klassingizni yozing:
Talabaklassini yarating;__init__ichidaism,yoshvaguruhatributlarini belgilang;- shu klassdan ikkita obyekt yasang;
- har biring atributlarini
print()bilan chiqaring; - bitta obyektning
yoshatributini o’zgartiring va ikkinchisini qayta chiqaring.
5-qadamda ikkinchi obyekt o’zgardimi? Nega?
Qisqacha xulosa
- Klass
class Nom:bilan yaratiladi; nomi katta harfdan boshlanadi. __init__— obyekt yasalganda avtomatik ishlaydi va unga boshlang’ich ma’lumot beradi.self— hozirgi obyektning o’zi;self.atribut = qiymatbilan ma’lumot saqlanadi.- Obyekt
Nom(...)bilan yasaladi, atributgaobyekt.atributorqali kiriladi. - Bir klassdan yasalgan obyektlar bir-biridan mustaqil.
Keyingi darsda klass metodlari va atributlarni — obyektga faqat ma’lumot emas, harakat ham qo’shishni ko’ramiz.