【发布时间】:2014-08-03 07:05:34
【问题描述】:
我想编写自己的 sum 函数来获取可变长度参数的总和。
def myadd(*tuple):
sum=0
for element in tuple:
sum=sum+element
return(sum)
调用方法一:
myadd(*(1,2,3,4))
这是最正式的函数调用方式,这里没问题。
调用方法二:
myadd(1,2,3,4)
也可以得到结果,为什么?
调用方法3:
myadd((1,2,3,4))
错误类型错误:+ 的不支持的操作数类型:'int' 和 'tuple'。
在我看来,调用2和调用3不能被python接受,参数位置没有*运算符?你能告诉我对python函数的操作原理吗?
【问题讨论】:
-
你期望
0 + (1, 2,3)是什么? -
显而易见的问题是:内置的 sum 函数有什么问题?
-
附带说明,你真的不应该调用你的参数
tuple,因为这隐藏了tuple类型/构造函数的名称。
标签: python