目录
1、位置实参
调用函数时,传递参数的顺序与函数定义中的参数顺序一致。
def person(name, age):
pass
person('Marry',34)
2、关键字实参
调用函数时,指明形参名称,传递参数的顺序可以与函数定义中的参数顺序不一致。
def person(name, age):
pass
person(age='34',name='Marry')
3、形参默认值
给形参指定一个默认值,如果函数调用时,没有为该形参传递实参,则使用默认值。
在使用‘位置实参’传递参数时,给定默认值的形参,放在所有形参之后。
person(name,age,city=None):
pass
person('Marry','34','Melbourne')
person('Grace','43')
4、将队列的副本传入函数
以‘切片’的方式,将队列副本传入函数,函数将对副本进行修改,不影响原队列。
def show_info(messages):
for msg in messages:
msg = '++'+msg+'++'
print(msg)
messages = ['a','b','c']
show_info(messages[:])
print(messages)
运行结果是:
++a++
++b++
++c++
['a', 'b', 'c']
5、传递任意数量的实参
函数show_ingredients中,使用*sandwich_ingredients定义了一个名为sandwich_ingredients的‘空元组’。调用函数时传递的所有实参,都保存在这个元组中。
def show_ingredients(* sandwich_ingredients):
print('sandwich ingredients include:\n')
for ingredient in sandwich_ingredients:
print(f'-- {ingredient}')
show_ingredients('white bread','ham','cheddar')
show_ingredients('whole wheat bread','turkey','tomato slices','swiss')
show_ingredients('baguette','bacon')
运行结果:
sandwich ingredients include:
-- white bread
-- ham
-- cheddar
sandwich ingredients include:
-- whole wheat bread
-- turkey
-- tomato slices
-- swiss
sandwich ingredients include:
-- baguette
-- bacon
6、传递任意数量的关键字实参
函数user_profile中,使用**info定义了一个名为info的‘空字典’,函数调用时传递的所有键值对,都保存在该字典中。
def user_profile(first,last,**info):
info['first_name']=first
info['last_name']=last
return info
user = user_profile('Grace','Wang',age='43',city='Melbourne',career='Engineer')
for key,value in user.items():
print(f'{key}:{value}')
运行结果:
age:43
city:Melbourne
career:Engineer
first_name:Grace
last_name:Wang
标签:info,sandwich,函数,ingredients,Python,--,实参,小结,name
From: https://blog.csdn.net/wanghuizheng/article/details/136642354