TGViewer
Валерий | AQA Engineer | Автотестирование на Python | REST, gRPC, GraphQL Валерий | AQA Engineer | Автотестирование на Python | REST, gRPC, GraphQL @aqa_engineer · 1.52K subscribers
Post #357 653
“Если оно ходит как утка… 🦆” — питон не требует паспорта.

А вы знали, что Python поддерживает несколько видов типизации? 🤔

Например:
- 🦆 
Утиная
- 🦢 Гусиная
- 📜 Статическая утиная типизация
- 🔍 Статическая типизация

В этом посте поговорим про ту типизацию, которая изначально была в Python — Утиную.

Одно время я все никак не мог понять, что это такое. Если вы уже в теме — отлично! Если нет — сейчас расскажу.

Python — язык про поведение, а не про формальности. 

Здесь не так важно, от какого класса ты наследуешься.
Важно, что ты умеешь делать!


Пример:
Представь, тебе нужна "последовательность": список, массив, колода карт — не суть.

Python не будет проверять, наследуешься ли ты от `list` или `collections.abc.Sequence`.

Он просто попробует вызвать:

- __len__()
- __getitem__()

Если получилось — значит, ты "последовательность". ✅

class FrenchDeck:  
def __init__(self):
self._cards = []

def __len__(self):
return len(self._cards)

def __getitem__(self, pos):
return self._cards[pos]



🔎 
Обратите внимание:  этот класс ни от кого не наследуется!

Но его можно:
- перебирать в цикле,
- брать срезы,
- передавать в `sorted()`, `random.choice()` и т.д.

Потому что он ведёт себя как список!

То есть тебе просто нужно реализовать нужные методы — и этого достаточно.

🦆 Что такое утиная типизация?

“Если что-то ходит как утка, крякает как утка — значит, это утка.”

Такой подход даёт гибкость:
- Можно писать адаптивный код без лишней иерархии.
- Главное — понимать, какие "протоколы поведения" ждёт от тебя Python.

Хочешь разбираться в таких концепциях глубже?
Учись читать поведение, а не только сигнатуры!

——————————-

📱 TG-сообщество

📱 Обучение

📱 Отзывы
  • 💩 77
  • 🔥 7
  • 👍 5
  • ❤ 3
  • 🆒 1
More from @aqa_engineer
  1. Sep 2, 2026💙💙💙💙💙 Маленькое напоминание о большой дате: где стоит провести День программиста⬆️ Ар…
  2. Sep 2, 2026Привет, давно меня не было пригар по работе, что совсем не успеваю ничего. За что прошу пр…
  3. Jul 16, 2026👩‍💻 В мае-июне я проходила курс «Автоматизация тестирования Rest API Advanced (Python)»…
  4. Jun 10, 2026Привет! Уже на следующей неделе у меня стартуют. Автоматизация тестирования брокеров сообщ…
  5. Jun 8, 2026Несколько месяцев назад я спросил, какой технический тренинг вам был бы действительно инте…
  6. Jun 6, 2026Материалы для тех, кто в теме. Одна из самых больших проблем при развитии в IT - это возмо…
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 →