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

#python

Вопрос:

Поэтому я написал функцию, которая принимает 2 параметра X и Y и выводит гистограмму на их основе, а затем принимает некоторые другие параметры (например, здесь: заголовок) и что-то с этим делает.

Я попытался просто вызвать переменную, но это не сработало

Итак, как же использовать переменные в кваргах? Это вообще тот вопрос, который я должен задавать, или это просто невозможно?

 import matplotlib.pyplot as plt

def bar(x,y,**stuff):
   plt.barh(x,y)
   for key,value in stuff.items():
        if title != "":
            plt.title(stuff[title])
    return plt.show()
bar(["bob","jeff","Dave"],[1,2,3],title = "People")
 

Это возвращает ошибку имени

Комментарии:

1. stuff это диктат-сделать stuff.get("title") , чтобы получить title кварг.

Ответ №1:

NameError Исключение составляет то, что title не определено до if условия if title != "": . Похоже, что вы пытаетесь получить аргумент ключевого слова, называемый title переданным через **stuff . В этом случае, поскольку stuff это словарь, вы хотели бы проиндексировать stuff его с помощью ключа title :

 def bar(x,y,**stuff):
    plt.barh(x,y)
    if stuff['title'] != "":
        plt.title(stuff['title'])
    return plt.show()