Я столкнулся с довольно простой проблемой, из-за которой я не могу придумать элегантное решение.
Я создаю строку, используя str.format
в функции, которая передается в dict
подстановок для использования в формате. Я хочу создать строку и форматировать ее со значениями, если они переданы, и оставить их пустыми в противном случае.
Пример
kwargs = {"name": "mark"}
"My name is {name} and I'm really {adjective}.".format(**kwargs)
должен возвращать
"My name is mark and I'm really ."
вместо того, чтобы бросать KeyError
(что будет, если мы ничего не сделаем).
Смутно, я даже не могу придумать неэлегантное решение этой проблемы. Думаю, я мог бы решить это, просто не используя str.format
, но я предпочел бы использовать встроенный (что в основном делает то, что я хочу), если это возможно.
Примечание. Я заранее не знаю, какие ключи будут использоваться. Я пытаюсь потерпеть неудачу изящно, если кто-то включает ключ, но не помещает его в kwargs dict. Если бы я знал с 100% точностью, какие ключи будут подняты, я бы просто заполнил их все и сделаю с ним.