Каждое ваше @property, classmethod, staticmethod и даже вызов обычных методов под капотом работает на одном и том же механизме. На дескрипторах.
Дескриптор — это любой класс, который реализует хотя бы один из методов...
Атрибуты — это фундамент объектной модели Python, но большинство новичков (и даже многие мидлы) используют их интуитивно, не понимая, что происходит "под капотом". В итоге — непредсказуемое поведение...
Если на собеседовании вас просят написать факториал или числа Фибоначчи через рекурсию — пишите. Но если вы часто ее используете в реальности...
Да, рекурсия концептуальна красива, математически элегантна,...
Если вас спросят, как Python ищет методы в «ромбовидной» иерархии, и вы ответите «сначала в глубину» (DFS) или «сначала в ширину» (BFS) — вы ошиблись. Оба ответа технически неверны для Python 3.
Разбираем анатомию Method Resolution...
«Код должен объяснять себя сам» — скажут одни. И будут непоняты.
«Я оставлю комменты у каждой строки кода, чтобы всё было понятно!» — скажут другие. И их код будет выглядеть как свалка никому не нужных очевидных фактов.
В...