Ответ 1
Существует различие в распаковке аргументов (где многие используют kwargs
) и передают dict
в качестве одного из аргументов:
-
Использование распаковки аргументов:
# Prepare function def test(**kwargs): return kwargs # Invoke function >>> test(a=10, b=20) {'a':10,'b':20}
-
Передача dict в качестве аргумента:
# Prepare function def test(my_dict): return my_dict # Invoke function >>> test(dict(a=10, b=20)) {'a':10,'b':20}
Различия в основном:
- (вы можете просто передавать аргументы ключевого слова, даже если они явно не определены),
- гибкость (вы можете напрямую поддерживать некоторые аргументы ключевого слова, а остальные -
**kwargs
), Распаковка аргументов - помогает избежать непредвиденных изменений в объекте, содержащем "аргументы" (что менее важно, поскольку Python в целом предполагает, что разработчики знают, что они делают, это другая тема),