Я посмотрел на этот вопрос , но он не совсем отвечает на мой вопрос.В качестве примера я взял простой способ напечатать свое имя.
def call_me_by_name(first_name):
print("Your name is {}".format(first_name))
Позже я понял, что по желанию я также хотел бы иметь возможность печатать отчество и фамилию.Я внес следующие изменения, чтобы учесть, что используя ** kwargs, опасаясь, что в будущем меня могут добавить дополнительные поля для самого имени (например, 3-го, 4-го, 5-го имени и т. Д.)
Iрешил использовать ** kwargs
def call_me_by_name(first_name,**kwargs):
middle_name = kwargs['middle_name'] if kwargs.get('middle_name') else ""
last_name = kwargs['last_name'] if kwargs.get('last_name') else ""
print("Your name is {} {} {}".format(first_name,middle_name,last_name))
Моя единственная проблема в том, что, поскольку я продолжаю реализовывать поддержку большего количества имен, я заканчиваю тем, что пишу по одной строке кода для каждого аргумента ключевого слова, который может или не может прийтимой метод.Я хотел бы найти решение, которое будет настолько питонным, насколько возможно.Есть ли лучший способ добиться этого?
РЕДАКТИРОВАТЬ 1
Я хочу использовать ключевые аргументы, так как это всего лишь пример программы.Фактический вариант использования - это анализ файла.Аргументы ключевых слов на данный момент поддерживают синтаксический анализ файла из
1) Определенный байт в файле.
2) Определенный номер строки в файле.
Только одно из этих двух условий может быть установлено в любой данный момент времени (так как невозможно прочитать из определенного байтового смещения в файле и из номера строки одновременно), но можетв будущем будет больше таких условий, таких как синтаксический анализ файла по первому вхождению символа и т. д. Таких условий может быть 10-20 различных, мой метод должен поддерживать, НО только вызывающее лицо может установить только одно из этих условий в любое время,Я не хочу иметь 20-30 различных условий ЕСЛИ, если нет другого выбора.