1. 当使用列表作为某个方法(函数)的参数,但是又不想修改原列表内容:
function_1(list_1[:])
这样函数依然能够完成工作,使用的是原列表的副本而不是列表本身。
2. 函数接受任意数量的参数:
def print_letters(*letters):
print(letters)
print_letters("aaa") //输出:('aaa',)
print_letters("bbb","ccc","ddd") //输出:('bbb', 'ccc', 'ddd')
事实上,python创建了一个名为letters的元组,并将收到的所有值都封装到这个元组中。
注意:当位置参数和任意数量参数同时使用时,必须在函数定义中将接纳任意数量实参的形参放在最后:
def print_letter_digit(digit,*letters):
print(f"\n 第{digit}行显示的字母元组:{letters}")
print_letter_digit(1,"aaa","bbb","ccc")
print_letter_digit(2,"ddd","eee","fff")
//结果:
//第1行显示的字母元组:('aaa', 'bbb', 'ccc')
//第2行显示的字母元组:('ddd', 'eee', 'fff')
3. 函数接收任意数量的实参:
有时候需要接受任意数量的实参,但预先不知道传递给函数的是什么样的信息
def print_somthing(digit,letter,**whatever):
whatever['digit'] = digit
whatever['letter'] = letter
return whatever
>>> print_somthing(1,"a",description = "simple not complex", date = 20240105, greetings = "happy new year")
{'description': 'simple not complex', 'date': 20240105, 'greetings': 'happy new year', 'digit': 1, 'letter': 'a'}
事实上,python创建了一个名为whatever的字典,并将收到的所有键值对都放到这个字典中。