__init__ metodi — konstruktorOldingi darsda obyekt yaratgandan keyin atributlarni alohida belgiladik. Bu noqulay — har safar obyekt yaratganda uni unutib qo'yish mumkin. Buning yaxshiroq usuli bor: __init__ metodi.
__init__ — bu konstruktor (constructor). Obyekt yaratilganda Python avtomatik ravishda ushbu metodini chaqiradi. Shuning uchun atributlarni to'g'ridan-to'g'ri u yerda belgilash mumkin:
class Mushuk:
def __init__(self, ismi, yoshi):
self.ismi = ismi
self.yoshi = yoshi
mitti = Mushuk("Mitti", 3)
print(mitti.ismi) # Mitti
print(mitti.yoshi) # 3
toshpol = Mushuk("Toshpoʻlat", 5)
print(toshpol.ismi) # Toshpoʻlat
print(toshpol.yoshi) # 5Mushuk("Mitti", 3) deb yozganda Python __init__ metodini chaqirib, ismi="Mitti" va yoshi=3 qiymatlarini uzatadi. self esa yaratilayotgan obyektning o'zini bildiradi (keyingi darsda batafsil ko'ramiz).
Endi __init__ borligida va yo'qligida solishtiring:
# __init__ siz — noqulay
class Mushuk:
pass
mitti = Mushuk()
mitti.ismi = "Mitti" # alohida yozish kerak
mitti.yoshi = 3 # alohida yozish kerak
# __init__ bilan — qulay
class Mushuk:
def __init__(self, ismi, yoshi):
self.ismi = ismi
self.yoshi = yoshi
mitti = Mushuk("Mitti", 3) # bir qatorda tayyor!__init__ bilan klassdan obyekt yaratish ancha qulay va xavfsiz bo'ladi — zarur atributlarni ko'rsatishni unutib bo'lmaydi.
Muhim qoidalar:
__init__ — obyekt yaratilganda avtomatik chaqiriladi__init__ ning birinchi parametri doim self bo'ladiself.atribut = qiymat — atributni obyektga biriktiradi__init__ ga uzatilgan qiymatlar self orqali saqlanadiTalaba klassini __init__ bilan yaratish
Quyidagi amallarni bajaring:
Talaba nomli klass yarating__init__ metodida ism va yosh parametrlarini qabul qilingself.ism va self.yosh sifatida saqlang"Ism: {ism}" va "Yosh: {yosh}" formatida chop etingBu mashq orqali siz:
__init__ metodini yozishni o'rganasizself parametridan foydalanishni ko'rasizMisol:
Kiritish:
Ali
18Chiqish:
Ism: Ali
Yosh: 18