У меня есть функция:Как объяснить поведение обработки функций?
def test_func(a, b):
print a
print b
Я знаю, что это не правильно использовать словарь при вызове функции выглядит следующим образом:
a = {1:2, 3:4}
test_func(*a) # function expects a sequence as an argument
Это должно быть turple или список вместо этого. Но консоль не отображает ошибок и не печатает ключи этого словаря: 1 и 3.
Похож на это: когда вызов функции ожидает последовательность, но принимает словарь, он вытаскивает словарные ключи в качестве последовательности аргументов. Это нормально?
«Все в порядке?» - Да, ваше наблюдение правильное, и все в порядке. – thefourtheye
Да, это так. Вы также можете использовать 'для ключа в D'. – wvdz
, чтобы распаковать словарь в качестве имени, который вы используете '**'. – will