Почему способ форматирования, заключающийся в использовании % устарел?

я пишу проект для публикации на github и стараюсь учитывать все детали, способствующие лучшему восприятию моего кода. В моем коде используются SQL запросы в бд и соответственно я использую форматирование строк.

Я остановился на этом методе:

async def insert(table_name: str, data: dict) -> str:
    columns, values = data.keys(), data.values()
    columns_list_length = len(columns)
    placeholders = [f'${i}' for i in range(columns_list_length)]

    query = 'insert into %s (%s) values (%s)' % \
            (
                table_name,
                params_separator.join(columns),
                params_separator.join(placeholders)
            )

    async with connection.transaction():
        return await connection.execute(query, values)

Его суть заключается в том, чтобы установить значения ключей словаря в качестве колонок, а их значения в качестве значений колонок. Я считаю, что способ форматирования %s выглядит приятнее, если использовать f-строки, то это начинает выглядеть ужасно в связи с тем, что внутри строки появляется неизмеримое количество скобок, с методом format все обстоит так же. Есть ли какая-то причина, помимо слова "устаревший", способная лучше дать понять почему не стоит использовать %?


Ответы (0 шт):