self — joriy obyektga havola__init__ da self ni ko'rdik, lekin u nima degani? self — bu metodning qaysi obyekt ustida chaqirilayotganini bildiradi. Ya'ni self — joriy obyektning o'zi.
class Mushuk:
def __init__(self, ismi):
self.ismi = ismi
def salom(self):
print(f"Meow! Men {self.ismi}man.")
mitti = Mushuk("Mitti")
mitti.salom() # Meow! Men Mittiman.
toshpol = Mushuk("Toshpoʻlat")
toshpol.salom() # Meow! Men Toshpoʻlatman.mitti.salom() deb chaqirganda, Python ichida Mushuk.salom(mitti) deb bajaradi — ya'ni self o'rniga mitti obyekti o'tadi. Shuning uchun self.ismi — bu aynan mitti.ismi.
toshpol.salom() deb chaqirganda esa self o'rniga toshpol o'tadi.
class Mushuk:
def __init__(self, ismi, yoshi):
self.ismi = ismi
self.yoshi = yoshi
def tavsif(self):
# self orqali obyektning istalgan atributiga murojaat qilish mumkin
return f"{self.ismi} mushuk, {self.yoshi} yoshda."
mitti = Mushuk("Mitti", 3)
print(mitti.tavsif()) # Mitti mushuk, 3 yoshda.
toshpol = Mushuk("Toshpoʻlat", 5)
print(toshpol.tavsif()) # Toshpoʻlat mushuk, 5 yoshda.self har doim metodning birinchi parametri bo'ladi. Lekin uni chaqirganda siz self uchun qiymat bermaysiz — Python uni avtomatik uzatadi.
Muhim qoidalar:
self — joriy obyektning o'ziga havolaself oladiself.atribut — obyektga tegishli ma'lumotga murojaatself uchun qiymat bermaysiz — Python o'zi uzatadiself nomi an'anaviy, lekin texnik jihatdan boshqa nom ham ishlaydi (tavsiya etilmaydi)Robot klassida tanishtir() metodi
Quyidagi amallarni bajaring:
Robot nomli klass yarating__init__(self, nomi) metodida self.nomi ni saqlangtanishtir(self) metodi yozing — "Men {nomi} robotman." qatorini qaytarsinBu mashq orqali siz:
self orqali atributga metoddan murojaat qilishni o'rganasizreturn bilan qiymat qaytarishni ko'rasizMisol:
Kiritish:
R2-D2Chiqish:
Men R2-D2 robotman.