函数定义中可能包含多个形参,因此函数调用中也可能包含多个实参。向函数传递实参的方式有很多:可使用位置实参,这要求实参的顺序与形参的顺寻相同;也可使用关键字实参,其中每个实参都由变量名和值组成;还可以使用列表和字典。
8.2.1 位置实参调用函数时,python必须将函数调用中的每个实参都关联到函数定义中的一个形参。为此,最简单的关联方式是基于实参的顺序。这种关联方式称为位置实参。
下面看一个显示宠物信息的函数,这个函数指出一个宠物属于哪种动物以及它叫什么名字,如下所示:
def describe_pet(animal_type,pet_name): """显示宠物的信息""" print(f"nI have a {animal_type}.") print(f"My {animal_type}'s name is {pet_name.title()}.") describe_pet('hamster','harry')
输出:
I have a hamster.
My hamster's name is Harry.
这个函数的定义表明,它需要一种动物类型和一个名字。调用describe_pet()时,需要按顺序提供一种动物类型和一个名字。例如,在上面的函数调用中,实参'hanmster'被赋给形参animal_type,形参 Harry被赋给 pet_name.在函数体中,使用了两个形参来显示宠物的信息。
输出:
I have a hamster.
My hamster's name is Harry.
1.多次调用函数
可以根据需要调用函数任意次。要再描述一个宠物,只需要再次调用describe_pet():
def describe_pet(animal_type,pet_name): """显示宠物的信息""" print(f"nI have a {animal_type}.") print(f"My {animal_type}'s name is {pet_name.title()}.") describe_pet('hamster','harry') describe_pet('dog','willie')
输出:
I have a hamster.
My hamster's name is Harry.
I have a dog.
My dog's name is Willie.
多次调用函数是一种效率极高的工作方式。只需要在函数中编写一次描述宠物的代码,然后每次描述新宠物时,都调用该函数并向他提供新宠物的信息。
在函数中,可根据需要使用任意数量的位置实参,python将按顺序将函数调用中的实参关联到函数定义中相应的形参。
8.2.2关键字实参关键字实参是传递给函数的名称值对。因为直接在实参中将名称和值关联起来,所以向函数传递实参时不会混淆。关键字实参让你无需考虑函数调用中的实参顺寻,还清楚的指出了函数调用中各个值的用途。例如:
def describe_pet(animal_type,pet_name): """显示宠物的信息""" print(f"nI have a {animal_type}.") print(f"My {animal_type}'s name is {pet_name.title()}.") describe_pet(animal_type='hamster',pet_name='harry')
函数主体还和之前的一样,但在调用这个函数时,向python明确指出了各个实参对应的形参。
关键字实参的顺序无关紧要,因为python知道各个值应该赋给哪个形参。
注意:使用关键字时,务必准确指定函数定义中的形参名
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)