Вы хотите
if 'errormessage' in kwargs:
print("found it")
Чтобы получить значение errormessage
if 'errormessage' in kwargs:
print("errormessage equals " + kwargs.get("errormessage"))
Таким образом, kwargs
это просто другое dict
. Ваш первый пример, if kwargs['errormessage']
означает "получить значение, связанное с ключом errormessage" в kwargs, а затем проверить его значение типа bool ". Так что, если такого ключа нет, вы получите файл KeyError
.
Ваш второй пример, if errormessage in kwargs:
означает «если kwargs
содержит элемент, названный« errormessage
», и если« errormessage
»не является именем переменной, вы получите NameError
.
Я должен упомянуть, что словари также имеют метод, .get()
который принимает параметр по умолчанию (сам по умолчанию None
), так что он kwargs.get("errormessage")
возвращает значение, если этот ключ существует, и в None
противном случае (аналогично тому kwargs.get("errormessage", 17)
, что вы могли подумать). Если вас не волнует разница между существующим ключом и имеющимся None
в качестве значения или несуществующим ключом, это может быть удобно.