Зачем использовать упакованные * args / ** kwargs вместо списка передачи / dict?
Если я не знаю, сколько аргументов будет передано функции, ямог напишите функцию, используя упаковку аргументов:
def add(factor, *nums):
"""Add numbers and multiply by factor."""
return sum(nums) * factor
В качестве альтернативы, я мог бы избежать упаковки аргументов, передав список чисел в качестве аргумента:
def add(factor, nums):
"""Add numbers and multiply by factor.
:type factor: int
:type nums: list of int
"""
return sum(nums) * factor
Есть ли преимущество в использовании упаковки аргументов*args
пройти список номеров? Или есть ситуации, когда кто-то более уместен?