В Python, я написал эту функцию, чтобы научить меня, как **kwargs
работает в Python:В Python, что определяет порядок при итерации через kwargs?
def fxn(a1, **kwargs):
print a1
for k in kwargs:
print k, " : ", kwargs[k]
Я тогда назвал эту функцию с
fxn(3, a2=2, a3=3, a4=4)
Здесь был вывод, что мой переводчик Python напечатал:
3
a3 : 3
a2 : 2
a4 : 4
Почему цикл for печатает значение a3 перед значением a2, даже если я сначала подал a2 в свою функцию?
Смотрите мой ответ в отношении OrderedDict – PaulMcG
@PaulMcGuire:.. См. мой комментарий к вашему ответу. – Tadeck
Не могли бы вы написать это как 'fxn (3, ** OrderedDict (и т. д.)?? О, подождите, я вижу, что вы изменили подпись, чтобы взять dict, а не набор аргументов ключевых слов Если вы собираетесь изменить подпись, тогда вы можете просто передать список ваших корневых ключей. Но OP действительно хотел перебрать ** kwargs. – PaulMcG