Python sehrli metodlar (magic methods)
Sehrli usullar nima?
Sehrli usullar -__init__() va __str__() kabi nomlari ikkita pastki chiziq bilan boshlanadigan va tugaydigan maxsus usullardir. Ikkita pastki chiziq tufayli ular dunder usullari ("ikki chiziq" uchun qisqartma) deb ham ataladi.
Siz sehrli usullarni to‘g‘ridan-to‘g‘ri chaqirmaysiz. Python ularni avtomatik ravishda ma’lum holatlarda, masalan, obyekt yaratilganda, chop etilganda yoki boshqa obyekt bilan taqqoslaganda chaqiradi.
Misol
__init__() va __str__() ikkalasi ham sehrli usullardir:
class Person:
def __init__(self, name):
self.name = name
def __str__(self):
return f"Person: {self.name}"
p1 = Person("Emil")
print(p1)
O‘zingiz sinab ko‘ring »
Eslatma:__init__() obyekt yaratilganda avtomatik ravishda ishlaydi va __str__() obyekt chop etilganda avtomatik ravishda ishlaydi.
Sehrli usullar ro‘yxati
Ushbu qo‘llanma quyidagi sehrli usullarni o‘z ichiga oladi. To‘liq darsni misollar bilan ko‘rish uchun usulni bosing:
| Metod | Kim tomonidan chaqiriladi | Tavsif |
|---|---|---|
__init__() | Person(...) | Yangi obyekt yaratilganda ishlaydi |
__str__() | print(obj), str(obj) | Obyekt uchun ko‘rsatilgan o‘qilishi mumkin bo‘lgan matnni boshqaradi |
__repr__() | repr(obj) | Dasturchiga mo‘ljallangan ko‘rinishni boshqaradi |
__eq__() | obj1 == obj2 | Class uchun “teng” nimani anglatishini nazorat qiladi |
__add__() | obj1 + obj2 | + operatori nima qilishini boshqaradi |
__len__() | len(obj) | Obyektning "uzunligini" qaytaradi |
__lt__() | obj1 < obj2 | Taqqoslash yoki saralashda obyektlar qanday tartiblanganligini boshqaradi |
__contains__() | item in obj | in operatori nimani tekshirishini boshqaradi |
__call__() | obj(...) | Obyektni funksiya kabi chaqirish imkonini beradi |
Eslatma:__init__() allaqachon classlar/obyektlar bo‘limida o‘z darsiga ega.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
