Мазмунга өтүү

Сабактын башталышы

Сыйкырдуу (dunder) методдор

Өз класстарыңызды Python-дун камтылган синтаксисине туташтырыңыз

Негизги идея: сыйкырдуу метод (же dunder-метод, англисче "double underscore" — кош асты сызык) — бул __str__ же __eq__ сыяктуу атайын аталган метод, аны Python print(obj), a == b, len(obj) же a + b сыяктуу кадимки синтаксисти колдонгонуңузда сиздин ордуңузга чакырат. Сиз аларды дээрлик эч качан аты менен чакырбайсыз; аларды объектилериңиз камтылган типтердей иштеши үчүн аныктайсыз.
Бул теманын аягында сиз:
  • dunder-методдор эмне экенин жана Python аларды качан чакырарын түшүндүрө аласыз,
  • объектилерге __repr__ жана __str__ аркылуу окулуучу түр бере аласыз,
  • __eq__ аркылуу маани боюнча теңдикти аныктай аласыз,
  • __len__ аркылуу len() жана чындык текшерүүсүн иштете аласыз,
  • __add__ жана __mul__ аркылуу + жана * операторлорун кайра жүктөй аласыз,
  • NotImplemented жана теңдик менен хештөө байланышын кошо алганда компромисстерди баалай аласыз.

1. Dunder-метод деген эмне?

Сиз a + b, len(x) же print(obj) деп жазган сайын, Python бул синтаксисти байкатпай объектинин методун чакырууга айлантат. Мындай методдордун аттары кош асты сызык менен курчалган — __add__, __len__, __str__ — ошондуктан программисттер аларды "dunder" (double-under) деп аташат. Аларды дагы атайын методдор деп аташат.

Салыштыруу: dunder-методдорду дубалдагы электр розеткалары катары элестетиңиз. Дубал (Python) стандарттуу розетка аркылуу кубат берүүнү мурдатан билет. Класс туура розетканы — методдун туура атын жана формасын — берген кезде, камтылган механизм түз эле туташат. Сиз үйдүн зымдарын кайра тартпайсыз; сиз жөн гана стандарттуу штепселди сайасыз, ошондо len(), == жана print() объектиңиз менен эмне кыларын билет.

Негизги ой жүгүртүү модели: сиз dunder-методдорду дээрлик эч качан түз чакырбайсыз. Сиз табигый синтаксисти жазасыз, а Python чакырууну керектүү dunder-ге өзү багыттайт. obj.__len__() деп жазуу иштейт, бирок бүт максат — жөн гана len(obj) деп жаза алууда.

Бул сабакты YourAIZone платформасында улантыңыз

Толук сабакта — толук түшүндүрмө, чыгарылган мисалдар, көп кездешкен каталар, заматта текшерилүүчү тесттер жана ЖИ-репетитор. Конок катары дароо баштаңыз же прогрессти сактоо үчүн аккаунт түзүңүз.

Толук сабакта

  • Толук түшүндүрмө
  • Чыгарылган мисалдар
  • Көп кездешкен каталар жана алардан кантип качуу керек
  • Тест суроолору: 15
  • Тема боюнча суроолорго жооп берген ЖИ-репетитор
  • Окуучу, ата-эне жана мугалим үчүн прогрессти көзөмөлдөө