Peteryo01223 发表于 2020-9-21 17:41:20

关于:函数中,参数前的一个星号

程序是:
def function(param1, *param2):
    print (param1)
    print (param2)
function(1,2,3,4,5)

输出结果是:
1
(2, 3, 4, 5)

请问:这是为什么呀?好奇特!

我查到:Python 的函数中经常能看到输入的参数前面有一个星号, 意思是将所有参数以元组(tuple)的形式导入。
但是:这是怎么理解,run 出了这么奇怪的结果呢?

qiuyouzhi 发表于 2020-9-21 18:31:07

这个东西叫做可变数量参数,默认用元组打包。
你输入了1,2,3,4,5,第一个参数(1)被param1接收了,剩下的就都以元组的形式放进param2了。

kogawananari 发表于 2020-9-21 21:01:29

param1, *param2 = (1,2,3,4,5)
print(param1)
print(param2)

运行这个试试就知道了

Peteryo01223 发表于 2020-9-22 09:47:48

qiuyouzhi 发表于 2020-9-21 18:31
这个东西叫做可变数量参数,默认用元组打包。
你输入了1,2,3,4,5,第一个参数(1)被param1接收了,剩下的 ...

非常感谢指点

Peteryo01223 发表于 2020-9-22 09:48:18

kogawananari 发表于 2020-9-21 21:01
param1, *param2 = (1,2,3,4,5)
print(param1)
print(param2)


好哒
页: [1]
查看完整版本: 关于:函数中,参数前的一个星号