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

Python Sinflar va Obyektlar (OOP) mavzusida test

Savol 1 / 8

Python dasturlash tilida sinf (Class) yaratish uchun qaysi kalit so'z ishlatiladi?