python8.2 传递实参

python8.2 传递实参,第1张

python8.2 传递实参

函数定义中可能包含多个形参,因此函数调用中也可能包含多个实参。向函数传递实参的方式有很多:可使用位置实参,这要求实参的顺序与形参的顺寻相同;也可使用关键字实参,其中每个实参都由变量名和值组成;还可以使用列表和字典。

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知道各个值应该赋给哪个形参。

注意:使用关键字时,务必准确指定函数定义中的形参名

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5689330.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存