有时候,预先不知道函数需要接受多少个实参。python有个功能是允许函数从调用语句中接受任意数量的实参。
先看一个例子,下面的函数只有一个形参*names
,但不管调用语句中提供了多少实参,这个形参都会接受:
def say_hello(*names):
"""对每一个人问候"""
print(names)
for name in names:
print(f"Hello {name}!")
print()
# 传递了一个实参
say_hello("Li")
# 传递了两个实参
say_hello("Li", "Liu")
运行输出:
- 形参名
*names
中的星号让python创建一个名为names的空元组,将收到的所有值都封装到这个元组中。函数体内的print(names)
通过生成输出,证明python能够处理使用任意数量的值来调用函数的情况。从输出可以看出,python将收到的实参封装到一个元组中,即便函数只收到一个值。