Python8.2(3)传递实参

8.2.3 默认值

编写函数时,可给每个形参指定默认值。在调用函数中给形参提供了实参时,python将使用指定的实参值;否则,将使用形参的默认值。因此,给形参指定默认值后,可在函数调用中省略相应的实参。使用默认值可简化函数调用,还可清楚的指出函数的典型用法。

例如,如果你发现调用describe_pet()时,描述的大多是小狗,就可将形参animal_type默认值设置为‘dog’。

def describe_pet(pet_name,animal_type='dog'):
    """显示宠物的信息"""
    print(f"\nI have a {animal_type}.")
    print(f"My {animal_type}'s name is {pet_name.title()}.")
describe_pet(pet_name='willie')

这里给形参 animal_type指定了默认值’dog‘,

输出:

I have a dog.
My dog's name is Willie.

这个函数的定义中,修改了形参的排列顺序。因为给animal指定了默认值,无需通过实参来指定动物的类型,所以在函数调用中只包含一个实参,python依然将这个实参视为位置实参,在调用python时,这个实参将关联到函数定义中的第一个形参。这就是需要将pet_name放在形参列表开头的原因。

例如是用最简单的调用方式:

describe_pet(willie)

因为只提供了一个实参,这个实参将关联到函数定义中的第一个形参pet_name中,由于没有给animal提供实参,python将使用默认值 dog。

如果要描述的动物不是小狗,可使用类似于下面的函数调用:

describe_pet(pet_name='willie',animal_type='hamser')

注意:使用默认值时,必须先在形参列表列出没有默认值的形参,在列出有默认值的实参。

8.2.4 等效的函数调用

鉴于可混合使用位置实参、关键字实参、和默认值,通常有多种等效的函数调用方式,例如:

def describe_pet(pet_name,animal_type='dog')

基于这种定义,在任何情况下都必须给pet_name提供实参。指定该实参时可采用位置方式,也可采用关键字方式。如果要描述的动物不是小狗,还必须在函数调用给animal_type提供实参。同样,指定该实参时可采用位置方式,也可采用关键字方式,下面对这个函数的所有调用都可行:

#一条名为1111的小狗
describe_pet('1111')
describe_pet(pet_name='1111')
#一只名为2222的仓鼠
describe_pet(pet_name='2222',animal_type='hamster')
describe_pet(animal_type='hamster',pet_name='2222')
describe_pet('2222','hamster')

8.2.5避免实参错误

尽量不要写错!

新年快乐!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值