Python元组_参数长度可变

函数的参数可以有任意多个;用星号*开头来作为形式参数名,可以将所有实际参数收录到一个元组中。

例如 printall 就可以获取任意多个数的参数,然后把它们都打印输出:

>>> def printall(*args):

...     print(args)

... 

你可以随意命名收集来的这些参数:

>>> printall(1, 2.0, '3', 'apple')

(1, 2.0, '3', 'apple')

与聚集相对的就是分散了;如果有一系列的值,然后想把它们作为多个参数传递给一个函数,就可以用星号*运算符。

比如 divmod 要求必须是两个参数;但如果给它一个元组,是不能进行运算的:

>>> t = (7, 3)

>>> divmod(t)

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

TypeError: divmod expected 2 arguments, got 1

但如果拆分这个元组,就可以了:

>>> divmod(*t)

(2, 1)

很多内置函数都用到了参数长度可变的元组。比如 max 和 min 就可以接收任意数量的参数:

>>> max(1, 2, 3)

3

但求和函数 sum 就不行了:

>>> sum(1, 2, 3)

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

TypeError: sum expected at most 2 arguments, got 3

结束。

原文地址:https://www.cnblogs.com/liusingbon/p/13210018.html