python函数形参实参_python中函数定义之实参、形参

一般在函数的定义中,会有一类变量---形参,它是函数完成其工作的一项信息。实参往往是调用函数时传递给函数的信息。我们在调用函数时,将要让函数使用的信息放在括号内。例如定义一个函数def greet_user(username):,在调用greet_user('jeese')中,将实参'jeese'传递给了函数greet_user(),这个值被存储在形参username中。

传递实参有很多种方式,下面了解一下他们。

1、位置实参

在调用函数时,每个实参要与定义中的形参关联起来。最简单的关联方式就是基于实参的顺序,这种关联方式就叫做位置实参。实参的顺序要与定义中的形参顺序一致。

1 defdescribe_pet(animal_type,pet_name):2 print('\nI have a'+animal_type+'.')3 print('My'+animal_type+"'s name is"+pet_name.title()+'.')4

5 describe_pet('hamster','harry')

在调用describe_pet()函数时,要按照形参的顺序提供一个动物的类型和一个名字。。平时根据需要可以多次调用。

运行结果:

1 I have a hamster.2 My hamster's name is Harry.

如果调用函数中给出的实参顺序和定义中的形参不同,就会出现令人啼笑皆非的结果。如下:

1 describe_pet('harry','hamster')

I have a harry.2 My harry's name is Hamster.

这种情况的出现就是实参顺序不正确,按照这种方式,实参‘harry’会被存储到形参animal_type中;同理,'hamster'将存储到形参pet_name中,结果就是我们得到了上面的名为Hamster的harry。

所以切记,位置实参一定要与形参顺序一致。

2、关键字实参

关键字函数实参是传递给函数的名称-值对。关键字实参让你无需考虑函数调用中的实参顺序,还能明确各个值的用途,得到的结果是一样的。

1 describe_pet(animal_type='hamster',pet_name='harry')2 describe_pet(pet_name='harry',animal_type='hamster')3

4 I have a hamster.5 My hamster's name is Harry.

3、默认值

在函数定义编写的时候,可以给形参指定默认值。当在调用函数中给形参提供了实参时,python将使用指定的实参值,否则就是使用默认的形参值。使用形参给定的默认值时,调用函数时可以省略相应的实参。

1 def describe_pet(pet_name,animal_type='dog'):2 print('\nI have a'+animal_type+'.')3 print('My'+animal_type+"'s name is"+pet_name.title()+'.')4

5 describe_pet('willie')

运行结果:

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

这个函数的编写改变了形参的顺序,由于带有默认值的animal_type不需要在函数调用中指定类型,因此函数只涉及到pet_name需要给出名字。鉴于python依然将该实参认为是位置实参,若需要给出函数名字,则这个名字的实参将关联到函数定义中的第一个形参,故而将带默认值的形参放在后面。

若函数调用中,给animal_type重新赋了新的值,则原来的默认值即可忽略。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值