Я изначально являюсь iOS разработчиком и как раз в языке Swift есть понятие протоколов, суть примерно та же самая и я рад, что в питоне появился этот тип. Однако, в случае iOS разработки, при наследовании сущности от протокола, IDE сразу предлагает реализовать протокольные методы и автоматически объявляет их в коде, что очень удобно и было бы круто увидеть такое в VSCode или PyCharm
Круто! В PyCharm можно нажать сочетание клавиш и выбрать заполнение всех методов. Я этот этап пропустил. При наборе метода в наследнике подсказка будет, так тоже нормально
Я не понял, всю дорогу мы уговариваем mypy на ругаться, для этого плодим целые сущности, но я так и не понял, в чем необходимость использования mypy? Как будто бы можно использовать что то другое, или отключить строгие правила, не?
mypy заставляет нас страдать сейчас, чтобы мы не погрязли в страданиях потом. Строгие проверки типов очень нужны и важны, это улучшает читаемость и надежность кода
Прочитать документацию за 5 минут - нет. 30 минут смотреть примеры на гусях и утках, не имеющих отношение к реальности и узнать 5% того, что есть документации по данной теме - да!
Чет не совсем ясно, на кой он нужен. А если мы путем наследования расширим наш класс, добавив в него новые методы и всё, приехали? Расширяй и протокол? Если, конечно, я все правильно понял.
Здравствуйте! Протокол нужен для того, чтобы обозначить, что обязательно должно быть на объекте. Это список минимальных требований, а не строжайшее ограничение по набору свойств
Да, а их там и не может быть. Мы ведь ждём что-то, что только с этим протоколом будет. Опаснт обращаться к свойствам, которых мы не ждали - это приведёт к ошибкам
Протоколы, это абстракция которая помогает разделять код и упрощать твою лапшу. Представь что ты class Human: и тебе нужна лопата, как класс и она должна копать-иметь метод dig(), но тебе не нужна определенна лопата, а любая которая может копать, а какой у нее черенок, ширина лопат, длинна рукояти тебя не интересуют, вот ты объявляешь протокол говоря о том что дайте мне то что может копать и я буду копать, а какой ручкой тебе не важно. Надеюсь объяснил, если тугими словами, то протокол позволяет отвязаться от конкретной реализации и не зависит от неё, что делает код более гибким, адаптируемым, масштабируемым
@@РоманМинаев-ф9з Вот поэтому и не ясно, на кой он нужен. Если я буду писать код по-старинке, то передав человеку класс крота (он тоже имеет метод копать) - получу от IDE сообщение, что я что-то не то делаю, с протоколом же всё будет ок, копай кротом.
Спасибо за ролик! Как раз юзал протокол в качестве аннотации для универсального обработчика)
Пожалуйста! Крутяк!
Я изначально являюсь iOS разработчиком и как раз в языке Swift есть понятие протоколов, суть примерно та же самая и я рад, что в питоне появился этот тип. Однако, в случае iOS разработки, при наследовании сущности от протокола, IDE сразу предлагает реализовать протокольные методы и автоматически объявляет их в коде, что очень удобно и было бы круто увидеть такое в VSCode или PyCharm
Круто!
В PyCharm можно нажать сочетание клавиш и выбрать заполнение всех методов. Я этот этап пропустил. При наборе метода в наследнике подсказка будет, так тоже нормально
Спасибо Сурен было действительно очень интересно!
Пожалуйста! Очень рад, что вам понравилось! 🥰
Это забавно, потому что я только вчера искал видео про протоколы у тебя и на нашёл его, а мне это было нужно… Спасибо тебе)
Пожалуйста!
Если что, в тг канале пощу, что выходит на бусти. И там этот ролик был выпущен ещё в прошлом году 🙂
Присоединяйтесь
@@SurenKhorenyan да как раз таки я там есть, и увидел что вышло видео про протоколы, но вот место где это вышло, я не увидел
Полезное видео по протоколам. Лайк+
Кайф, спасибо!
Рад, что вам понравилось 🥰
Пожалуйста
Сначала лайк, потом просмотр! Как всегда спасибо огромное.
Спасибо! Очень рад, что вам понравилось! 🥰
Пожалуй!
И за комментарий спасибо 🥰
Йоп, Ян😅
Спасибо за видео!❤
Пожалуйста!
Я не понял, всю дорогу мы уговариваем mypy на ругаться, для этого плодим целые сущности, но я так и не понял, в чем необходимость использования mypy? Как будто бы можно использовать что то другое, или отключить строгие правила, не?
mypy заставляет нас страдать сейчас, чтобы мы не погрязли в страданиях потом. Строгие проверки типов очень нужны и важны, это улучшает читаемость и надежность кода
Прочитать документацию за 5 минут - нет.
30 минут смотреть примеры на гусях и утках, не имеющих отношение к реальности и узнать 5% того, что есть документации по данной теме - да!
Кайф! 🔥
ЗАПОМНИТЕ! 30 минут просмотра ролика могут сэкономить вам 5 минут чтения документации
Почему 30 минут? Кто смотрит видео с обычной скоростью? 3х и вот уже 30 минут превращается в 10.
По сути это реализация интерфейса в языке...
Абсолютно точно! В разных языках по-разному называют
Можешь рассказать что за клаву используешь, и че за тема для пайчарма
Привет
Клавиатура Nuphy Air 75 V2
Тема One Dark
@@SurenKhorenyan Клавиатура Nuphy Air 72 V2 - Сколько заряд держит? Часов? Дней? И как потом заряжать?
@@andrewmoon181несколько дней. По Type C зарядка.
Опечатался, 75 клавиш
Чет не совсем ясно, на кой он нужен. А если мы путем наследования расширим наш класс, добавив в него новые методы и всё, приехали? Расширяй и протокол? Если, конечно, я все правильно понял.
Здравствуйте!
Протокол нужен для того, чтобы обозначить, что обязательно должно быть на объекте. Это список минимальных требований, а не строжайшее ограничение по набору свойств
@@SurenKhorenyan Да, но, я так понимаю, новых методов мы всё равно не увидим в подсказке, пока не обновим протокол?
Да, а их там и не может быть. Мы ведь ждём что-то, что только с этим протоколом будет. Опаснт обращаться к свойствам, которых мы не ждали - это приведёт к ошибкам
Протоколы, это абстракция которая помогает разделять код и упрощать твою лапшу. Представь что ты class Human: и тебе нужна лопата, как класс и она должна копать-иметь метод dig(), но тебе не нужна определенна лопата, а любая которая может копать, а какой у нее черенок, ширина лопат, длинна рукояти тебя не интересуют, вот ты объявляешь протокол говоря о том что дайте мне то что может копать и я буду копать, а какой ручкой тебе не важно. Надеюсь объяснил, если тугими словами, то протокол позволяет отвязаться от конкретной реализации и не зависит от неё, что делает код более гибким, адаптируемым, масштабируемым
@@РоманМинаев-ф9з Вот поэтому и не ясно, на кой он нужен. Если я буду писать код по-старинке, то передав человеку класс крота (он тоже имеет метод копать) - получу от IDE сообщение, что я что-то не то делаю, с протоколом же всё будет ок, копай кротом.