защищённые это всмысле манглинг?
А кто это сказал? Я впервые слышу, интересно почему
Ну зачем делать возможным вызов метода извне без экземпляра и блокировать эту возможность
Это то же самое что попросить официанта в ресторане запаковать еду, а потом после получения распаковать её и съесть.
Скорее продавать запакованую еду, которую можно съесть только в ресторане где купил, и нельзя выносить.
статикметоды это не обязательно методы которые вызываются извне. их можно внутри других методов вызывать, например
или внутри классметодов, cls._my_static_method()
обернуть метод в статик чтобы вызвать его из другого статика, только такой кейс я вижу. Ну и класс соответственно
Фактически так и было, выше кидалл ссылку на кейс
ну в чём идея оборачивать метод в статик, если в итоге мы его в простом будем вызывать
В целом, ты делал небольшое тестовое. И там не так много логики. Но если бы проект был больше, то этот метод был бы достаточно типичен для других ситуаций, поскольку он не зависит от класса и экземпляров. Лучше всего было бы вынести отдельной функцией куда нибудь в сервисы или сделать органайзер класс, для подобного рода функционала
Вопрос же вообще не об этом блин, но замечание интересное
Ну мы же в целом для человека раздуваем подходы подобной реализации)
Ну вот идея как раз была привязать функционал к классу, а не выносить. Сейчас подумал его вообще в другой класс можно было поместить
а в чем тогда идея обычных защищенных методов, которые вызываются только в других методах и не вызываются извне?
идея статик метода - вызов извне без создания инстанса!!!!!!
Ты в следующий раз задай себе вопрос: этот метод входит в доменную область этой реализации или может быть обособлен? Тогда будет проще принять решение, где его разместить. Даже по твоему решению я смотрю сейчас и просто читаю названия функций. Сделать запрос и сохранить в бд. Относится ли это непосредственно к сканеру?
идея статикметода - привязка обычной функции (не зависящей от инстанса) к какому-нибудь классу. будет ли оно вызываться извне или только внутри - другой вопрос
и в чём тогда смысл?) Не передавать self в аргументиках?
да и опять же, если "без создания инстанса", все еще существуют классметоды
а в чем тогда смысл статикметодов, которые вызываются извне, если есть классметоды? не передавать cls в аргументиках?
Считаешь мне надо было завести условный модуль utils и вызывать оттуда? Хотя саму логику работы с базой я например вынес. То есть если делать __save_to_db мне просто оформлять в отдельную функцию не надо было
Да, но не думаю, что у того кто писал эти функции в стандартную библиотеку питон были концептуальные мысли о том, как это использовать. Наверно просто для симметрии, ну и в других языках есть, чё бы и у нас не завести
Обсуждают сегодня