tixonochek, в твоем псевдокоде ты обращаешься к статическому атрибуту класса, а не объекта, опять таки та же самая ошибка, ты не отличаешь класс и его экземпляр
на это стоит обратить внимание
tixonochek, setattr лучше использовать тогда, когда ты наверняка не знаешь название атрибута, которому собираешься присвоить значение. Например в цикле можно использовать этот встроенный метод
tixonochek, а лучший способ тот, который рекомендует использовать метод setattr, зная название атрибута класса? Зачем там использовать setattr, в чем преимущество над стандартным способом присваивания?
_, откорректировал содержание вопроса. Код не мой, если что. И , пожалуйста, если ставите в ответе какое-то умозаключение, то уточняйте в чем его смысл. Мне из ответа было неясно, что вы подразумевали под костылями.
aRegius, со всеми проверками, среди которых есть проверка на наличие хотя бы одного словаря в словаре overridden получается в действительности около 25.
aRegius, кажется, что Вы мой единомышленник. По предыдущим ответам мне начинает казаться, что кроме этого способа нет другого. Просто таким образом код получается на строк 25.
Roman Kitaev, если у нас в словаре defaults есть ключ numbers, который в свою очередь содержит словарь, то нужно, чтобы переопределенные ключи переопределялись, а все остальное не удалялось
я не пойму, что тебя больше всего из этого умиляет, то, каким способом я строку форматирую или то, что я забыл после старого формата строки символ f убрать?
использую asyncpg, вместо передачи параметра в f строку добавил плейсхолдер и передал параметр в fetch. Спасибо, что уточнили, но Вы не поняли главной проблемы. Я добавил параметр columns для того, чтобы при необходимости доставать не все колонки, а лишь какую-то часть, но иногда нужно будет доставать все. В связи с этим я хочу добавить условие, что-то вроде того, что было озвучено в вопросе. Типо если не передан параметр columns, то columns начинает равняться *. И у меня как минимум два метода, где это необходимо задействовать. В fetch_one и fetchall. То есть в каждом методе осуществлять проверку if columns is None columns = '*' невыгодно.