Warum sollten gepackte * args / ** kwargs verwendet werden, anstatt list / dict zu übergeben?
Wenn ich nicht weiß, wie viele Argumente eine Funktion übergeben wird, kann ichkönnte schreibe die Funktion mit dem Argument packing:
def add(factor, *nums):
"""Add numbers and multiply by factor."""
return sum(nums) * factor
Alternativ könnte ich das Packen von Argumenten vermeiden, indem ich eine Liste von Zahlen als Argument übergebe:
def add(factor, nums):
"""Add numbers and multiply by factor.
:type factor: int
:type nums: list of int
"""
return sum(nums) * factor
Ist die Verwendung von Argument-Packing von Vorteil?*args
Übergabe einer Liste von Zahlen? Oder gibt es Situationen, in denen man besser geeignet ist?