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

selfhozirgi 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:

Python

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:

Python

Amaliy mashq

Birinchi klassingizni yozing:

  1. Talaba klassini yarating;
  2. __init__ ichida ism, yosh va guruh atributlarini belgilang;
  3. shu klassdan ikkita obyekt yasang;
  4. har biring atributlarini print() bilan chiqaring;
  5. bitta obyektning yosh atributini 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 = qiymat bilan ma’lumot saqlanadi.
  • Obyekt Nom(...) bilan yasaladi, atributga obyekt.atribut orqali 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.

Bu dars foydali bo'ldimi?

marta ko'rildi