关于收集参数作为元组的长度
考虑以下程序:def testfun(*var):
return len(var)
print('testfun(1,2,3)的长度是', testfun(1,2,3))
x = (1,2,3)
print('testfun(x)的长度是', testfun(x))
其运行结果为
testfun(1,2,3)的长度是 3
testfun(x)的长度是 1
由此可见,当函数 testfun() 的参数为一组收集参数时,对于一个元组 x = (1, 2, 3), testfun(x) 会把 x 当作一个变量而不是 len(x) 个变量。
我的问题是:能否在只提到元组x, 而不提到 x 的具体元素的情况下表达出与 testfun(1, 2, 3) 等价的内容? x前加个*
def testfun(*var):
return len(var)
print('testfun(1,2,3)的长度是', testfun(1,2,3))
x = (1,2,3)
print('testfun(x)的长度是', testfun(*x)) 逃兵 发表于 2021-1-20 13:31
x前加个*
多谢! def testfun(*var):
if len(var)==1 and isinstance(var,tuple):
var = var
return len(var)
print('testfun(1,2,3)的长度是', testfun(1,2,3))
x = (1,2,3)
print('testfun(x)的长度是', testfun(x))
qq1151985918 发表于 2021-1-20 13:43
多谢! def testf(*var):
print("var =", var, type(var))
# print("a =", a, type(a))
x = (1,2,3)
这样吧,按照你这个testfun(x)传入进入的话,只是传进去一个元组,只有一个元素,这个元素九十var ————(1,2,3)
testf(x)
页:
[1]