TGViewer
Zen of Python Zen of Python @zen_of_python · 18.8K subscribers
Post #2551 4.84K
​Простейшее объяснение, зачем нужны Dunder-методы

Допустим, у нас есть класс Fruit с названием и ценой, плюс некие собственные методы.

class Fruit:
def __init__(self, name, cost):
self.name = name
self.cost = cost

def method(self):
pass

Напрямую создавать экземпляры, передавая название и цену, не получится. НЯ ужно использовать магический метод __str__():

def __str__(self):
return f'{self.name}, €{self.cost}'

И теперь, если мы создадим экземпляр класса Fruit:

banana = Fruit('Banana', 10.5)

то он «схватит» аргументы в нужном режиме:

>>> print(banana)
... Banana, €10.5

#лучшиепрактики
  • 💩 16
  • 👍 15
  • 👎 4
  • ❤ 2
  • 😁 1
More from @zen_of_python
  1. Oct 12, 2026Что мешает запускать Python из снимка памяти Импорты и инициализация повторяются при каждо…
  2. Oct 12, 2026Почему тайм-аут не всегда заканчивается ровно по часам asyncio.TaskGroup владеет созданным…
  3. Oct 11, 2026Почему копия контекста не делает словарь отдельным contextvars помогает хранить request ID…
  4. Oct 11, 2026Почему короткие паузы сборщика мусора обходятся памятью В CPython подсчёт ссылок освобожда…
  5. Oct 11, 2026Как проверить, что мок заменил нужную зависимость Если service.py делает from client impor…
  6. Oct 10, 2026Post #5048
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →