почему я не получаю более одного произвольного аргумента в следующем коде?

#python #python-3.x #function

#python #python-3.x #функция

Вопрос:

В этом коде я пишу функцию, которая предоставляет информацию об автомобилях:

 car_info('subaru', 'outback', color='blue', tow_package=True)
 

Моя функция:

 def car_info(manufacturer,model,**specification):
    info = {}
    info['manufacturer'] = manufacturer
    info['name'] = model
  
    for key,values in specification.items():
        info[key] = values
        return info
 

Ответ №1:

Ваш оператор return находится в области for , поэтому он возвращается на первой итерации. Для его решения сделайте его областью действия:

 def car_info(manufacturer,model, **specification):
    info = {}
    info['manufacturer'] = manufacturer
    info['name'] = model
  
    for key,values in specification.items():
        info[key] = values
    return info
 

Вы также можете просто обновить свой информационный словарь:

 def car_info(manufacturer,model, **specification):
    info = {**specification}
    info['manufacturer'] = manufacturer
    info['name'] = model
    return info