**kwargs: Почему приведенное ниже понимание списка не выводит выходные данные, в то время как обычный цикл for это делаеPython

Программы на Python
Anonymous
**kwargs: Почему приведенное ниже понимание списка не выводит выходные данные, в то время как обычный цикл for это делае

Сообщение Anonymous »

В Python 3 я пытаюсь распечатать выходные данные **kwargs, используя понимание списка. Я не могу этого сделать, пока использование цикла for печатает элементы моего ввода списка. Ниже приведен воспроизводимый код:
Использование понимания списка:

Код: Выделить всё

class Practice(object):
__acceptable_keys_list = ['Right', 'left']

def __init__(self, **kwargs):
temp = ([self.__setattr__(key, kwargs.get(key)) for key in self.__acceptable_keys_list])
print(temp)
Вывод — [Нет, Нет].
При использовании цикла for:

Код: Выделить всё

class Practice(object):
__acceptable_keys_list = ['Right', 'Left']

def __init__(self, **kwargs):
for key in self.__acceptable_keys_list:
self.__setattr__(key,kwargs.get(key))
print(key)
Вывод — [Вправо, Влево].
Почему такая разница? Что мне не хватает? Разве список циклов comp и for не должен вести себя одинаково?

Подробнее здесь: https://stackoverflow.com/questions/527 ... ile-normal

Вернуться в «Python»