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 == obj2Class uchun “teng” nimani anglatishini nazorat qiladi
__add__()obj1 + obj2+ operatori nima qilishini boshqaradi
__len__()len(obj)Obyektning "uzunligini" qaytaradi
__lt__()obj1 < obj2Taqqoslash yoki saralashda obyektlar qanday tartiblanganligini boshqaradi
__contains__()item in objin 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!