Проверка правдивости аргумента ключевого слова, переданного функции, не работает должным образом - почему?

Я знаю, как проверить, есть ли ключ в ** kwargs. Теперь я хочу проверить значение аргумента, переданного функции.

def examplefunc(x,y,**kwargs):

    print(kwargs['extraarg'])
    if 'extraarg' in kwargs == True:
        print(kwargs['extraarg'])
        print("This is not printed")

    if 'extraarg' in kwargs: print("This is printed")

examplefunc(3,2,extraarg=True)   

Выход:

Правда

Это напечатано

Почему This is not printed печатается? 'extraarg' in kwargs является ложным. Так почему это This is printed? This is printed?


Я также попытался заменить строку, if 'extraarg' in kwargs == True if 'extraarg' == True: но на выходе все еще нет. This is not printed.

-2
источник поделиться
1 ответ
def examplefunc(x,y,**kwargs):

    print(kwargs['extraarg'])
    if ('extraarg' in kwargs)==True
        print(kwargs['extraarg'])
        print("This is not printed")

    if 'extraarg' in kwargs: print("This is printed")



if __name__ == "__main__":

    examplefunc(3,2,extraarg=True) 

выход:

True
True
This is not printed
This is printed
-1
источник

Посмотрите другие вопросы по меткам или Задайте вопрос