2014-07-16 3 views
0

С аргументами ключевого слова вы не можете просто ссылаться на потенциальные значения ключевых слов в dict, поскольку они могут отсутствовать. Каков наилучший способ ссылки на значения ключевых слов, которые могут быть или не быть? Я считаю себя делать вещи, как это:Правильный способ распаковать аргументы ключевого слова (kwargs)

def save_link(link, user, **kwargs): 

    if "auto" in kwargs: 
     auto = kwargs["auto"] 
    else: 
     auto = False 

для того, чтобы обеспечить значения по умолчанию и создать переменную, которая надежно присутствует. Есть ли способ лучше?

+0

Посмотрите на: http://stackoverflow.com/questions/1098549/proper-way-to-use-kwargs-in-python Здесь также есть несколько других методов. –

ответ

3

Вы можете использовать get свойство Dict:

auto = kwargs.get('auto', False) 

Это позволяет использовать значения по умолчанию (False в данном случае).

Однако, будьте предельно осторожны с этим подходом, потому что этот тип кода не жалуется на неправильные аргументы ключевых слов. Кто-то звонит funct(1,2,auot=True), и все выглядит нормально. Вы можете проверить, что полученные вами кварты принадлежат определенному списку.

Смежные вопросы