кейс в том, что надо в инит опросить оборудование и подгрузить информацию по объекту из разных категорий, проблема в том что надо сделать инициализацию как по постоянному имени так и по эфемерному id.
в случаи c c id мы под капотом сделать запрос должны получить имя по id и дальше действовать как будто у нас есть имя
хм, а вот это правильно, тогда я смогу викинуть лишнее из инит оставив только резолв, а подгрузку аттров выполнять в методе. Спасибо
А какой резолв, прости? (Видимо, выше по треду обсуждалось) И какая подгрузка...
https://t.me/ru_python/1685615
Нет. На момент завершения создания объекта все атрибуты уже должны быть корректно заданы. Выноси даже не в метод, а в функцию, которая все подгрузит до создания объекта
а разьве инит хук вызывается не после создания объекта?
В процессе создания с точки зрения вызвавшего это создание кода. Но после непосредственного этапа создания пустого объекта внутри этого процесса
ну тогда я не вижу смыла выносит функцию вне класса, может у меня мало опыта,( я уже давно пересел на го и стал забывать питон) но я не вижу проблем в методе класса. а в отдельной функции вижу.
Смысл в том, что у тебя есть логика создания класса, а есть логика взаимодействия с внешним сервисом
Как будто язык тут что-то меняет)
class ApiClient: def get_obj(self, id: int) -> MyClass:... def get_last(self) -> MyClass:...
а вот тут я снублю и задам еще один тупой вопрос: если у тебя 24 атребута, мне их,что все в инит выносит РУКАМИ?
А они у тебя откуда берутся и как заполняются? Если хрен пойми как - то руками. Если из жсона, можно взять marshmallow, pydantic, dataclass-factory
Могу предложить в качестве варианта реализации апишки вот это: https://github.com/Tishka17/domino17
Обсуждают сегодня