Skip to content

Python - Sinflar va obyektlar

Python Sinflar/obyektlar

Python obyektga yo'naltirilgan dasturlash tilidir.

Python'da deyarli hamma narsa o'ziga xos xususiyatlari va metodlari bilan obyektdir.

Sinf obyektlar yaratish uchun konstruktor yoki "reja"ga o'xshaydi.

Sinf Yaratish

Sinf yaratish uchun class kalit so'zidan foydalaning:

Misol

MeningSinpim nomli sinf yarating, x nomli xususiyat bilan:

python
class MeningSinpim:
    x = 5

obyekt Yaratish

Endi biz MeningSinpim nomli sinfdan foydalanib obyektlar yaratishimiz mumkin:

Misol

p1 nomli obyekt yarating va x qiymatini chop eting:

python
p1 = MeningSinpim()
print(p1.x)

__init__() Funksiyasi

Yuqoridagi misollar sinflar va obyektlarning eng oddiy shaklidir va real hayot ilovalarida unchalik foydali emas.

Sinflarning ma'nosini tushunish uchun ichki __init__() funksiyasini tushunishimiz kerak.

Barcha sinflarda har doim sinf ishga tushirilganda bajariladigan __init__() nomli funksiya mavjud.

__init__() funksiyasidan obyekt xususiyatlariga qiymatlar belgilash yoki obyekt yaratilganda bajarilishi kerak bo'lgan boshqa operatsiyalar uchun foydalaning:

Misol

Shaxs nomli sinf yarating, ism va yosh uchun qiymatlarni belgilash uchun __init__() funksiyasidan foydalaning:

python
class Shaxs:
    def __init__(self, ism, yosh):
        self.ism = ism
        self.yosh = yosh

p1 = Shaxs("John", 36)

print(p1.ism)
print(p1.yosh)

Eslatma: __init__() funksiyasi har safar sinf yangi obyekt yaratish uchun ishlatilganda avtomatik ravishda chaqiriladi.

__str__() Funksiyasi

__str__() funksiyasi sinf obyekti satr sifatida tasvirlanganda nima qaytarilishi kerakligini boshqaradi.

Agar __str__() funksiyasi o'rnatilmagan bo'lsa, obyektning satr tasviri qaytariladi:

Misol

__str__() funksiyasisiz obyektning satr tasviri:

python
class Shaxs:
    def __init__(self, ism, yosh):
        self.ism = ism
        self.yosh = yosh

p1 = Shaxs("John", 36)

print(p1)

Misol

__str__() funksiyasi bilan obyektning satr tasviri:

python
class Shaxs:
    def __init__(self, ism, yosh):
        self.ism = ism
        self.yosh = yosh

    def __str__(self):
        return f"{self.ism}({self.yosh})"

p1 = Shaxs("John", 36)

print(p1)

obyekt Metodlari

obyektlar metodlarni ham o'z ichiga olishi mumkin. obyektdagi metodlar obyektga tegishli bo'lgan funksiyalardir.

Keling, Shaxs sinfida metod yarating:

Misol

Salomlashuvni chop etadigan funksiyani qo'shing va uni p1 obyektida bajaring:

python
class Shaxs:
    def __init__(self, ism, yosh):
        self.ism = ism
        self.yosh = yosh

    def mening_metodim(self):
        print("Salom, mening ismim " + self.ism)

p1 = Shaxs("John", 36)
p1.mening_metodim()

Eslatma: self parametri joriy sinf namunasi uchun havola bo'lib, sinfga tegishli o'zgaruvchilarga kirish uchun ishlatiladi.

Self Parametri

self parametri joriy sinf namunasi uchun havola bo'lib, sinfga tegishli o'zgaruvchilarga kirish uchun ishlatiladi.

Uning nomi self bo'lishi shart emas, siz uni xohlagan nom bilan atashingiz mumkin, lekin u sinfdagi har qanday funksiyaning birinchi parametri bo'lishi kerak:

Misol

self o'rniga mening_obektim va abc so'zlarini ishlatish:

python
class Shaxs:
    def __init__(mening_obektim, ism, yosh):
        mening_obektim.ism = ism
        mening_obektim.yosh = yosh

    def mening_metodim(abc):
        print("Salom, mening ismim " + abc.ism)

p1 = Shaxs("John", 36)
p1.mening_metodim()

obyekt Xususiyatlarini O'zgartirish

obyekt xususiyatlarini quyidagicha o'zgartirishingiz mumkin:

Misol

p1 ning yoshini 40 ga o'rnatish:

python
p1.yosh = 40

obyekt Xususiyatlarini O'chirish

obyektdagi xususiyatlarni del kalit so'zi yordamida o'chirishingiz mumkin:

Misol

p1 obyektidan yosh xususiyatini o'chirish:

python
del p1.yosh

obyektlarni O'chirish

obyektlarni del kalit so'zi yordamida o'chirishingiz mumkin:

Misol

p1 obyektini o'chirish:

python
del p1

Pass Ibora

Sinf ta'riflari bo'sh bo'la olmaydi, lekin agar biron sababga ko'ra ichida hech narsa bo'lmagan sinf ta'rifingiz bo'lsa, xatolikni oldini olish uchun pass iborasini qo'ying.

Misol

python
class Shaxs:
    pass