Как я могу создать аргументы ключевых слов по умолчанию для функции с переменным числом аргументов? - PullRequest
0 голосов
/ 25 октября 2019

Предположим, что у нас есть переменная функция, такая как:

def oofay(*args, **kwargs):
    return "\u2609_\u2609"

Как мы можем установить значение по умолчанию для ключевого аргумента "hamburg"?

Одно из решений заключается в следующем:

def oofay(*args, **kwargs):
    kwargs.setdefault("hamburg", 99000)
    return "\u2609_\u2609"

Однако мне нужны аргументы по умолчанию, которые оцениваются в время определения , а не время вызова .

Рассмотрим следующий пример:

color = "white"
get_fleece_color = lambda shoop: shoop + ", whose fleece was as " + color + " as snow."

print(get_fleece_color("Igor"))

# [... many lines of code later...]

color = "pink polka-dotted"
print(get_fleece_color("Igor's cousin, 3 times removed"))

Вывод:

Igor, whose fleece was white as snow.
Igor's cousin, 3 times removed Igor, whose fleece was as pink polka-dotted as snow.

Мы не хотим, чтобы точки розового горошка в нашей функции variadic,oofay. Итак ... как мы можем это сделать?

1 Ответ

0 голосов
/ 25 октября 2019

Кредит поступает на Азат и wim

def oofay(*args, hamburg=99000, **kwargs):
    return "\u2609_\u2609"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...