我有一个像这样的功能:
def hexify_string(aString):
#code for string2hexa conversion
...我希望有一个接受一个或多个(数量未定义)参数的函数,并返回参数总和的十六进制表示。
def hexify(a,b...n):
#map hexify_string to all the parameters, and return the sum of them
有没有办法使用* args / ** kwars?
答案 0 :(得分:2)
hexify_string()
,返回一个整数。求和整数并返回总和。
def hexify(*lst):
n = sum(hexify_string(s) for s in lst)
return n
当你想要收集参数时,你想要对它们进行相同的处理,而你不知道它们会有多少,这正是*args
语法的用途。这是一个完美的用例。
**kwargs
收集name=value
个参数,你不需要这些参数。
答案 1 :(得分:2)
*args
获取所有非关键字参数并将其转换为列表。您可以将hexify_string
映射到列表的每个元素,然后返回列表中所有元素的总和。
def hexify(*args);
return sum(map(hexify_string, args)
这假设您的hexify_string
函数返回十六进制值,而不是字符串。