如何定义可接收任意数量参数的函数?以求和函数实现为例
如何定义接收任意数量参数的求和函数?
在Python里,要实现能接收任意数量参数并求和的函数,最常用的方法就是用可变位置参数——也就是*args语法,它能把所有传入的位置参数打包成一个元组,供函数内部处理。
给你写个最直观的实现:
def my_sum(*elements): total = 0 for num in elements: total += num return total # 测试一下 print(my_sum(1, 3, 4)) # 会输出8
如果你想更简洁,直接复用Python内置的sum()函数就行,代码会更短:
def my_sum(*elements): return sum(elements) print(my_sum(1, 3, 4)) # 同样输出8
这里特意把函数名改成了my_sum,避免和内置的sum()重名导致冲突,当然如果你愿意,也可以用其他名字,比如sum_all之类的。
简单解释下*elements的作用:当你调用my_sum(1,3,4)时,elements会变成元组(1,3,4),函数内部就可以像操作普通序列一样遍历它来求和啦。
内容的提问来源于stack exchange,提问作者Marko Bošnjak
相关产品推荐
相关产品推荐

