python中函数定义之实参、形参
2018-08-05 07:51:13来源:博客园 阅读 ()
一般在函数的定义中,会有一类变量---形参,它是函数完成其工作的一项信息。实参往往是调用函数时传递给函数的信息。我们在调用函数时,将要让函数使用的信息放在括号内。例如定义一个函数def greet_user(username):,在调用greet_user('jeese')中,将实参'jeese'传递给了函数greet_user(),这个值被存储在形参username中。
传递实参有很多种方式,下面了解一下他们。
1、位置实参
在调用函数时,每个实参要与定义中的形参关联起来。最简单的关联方式就是基于实参的顺序,这种关联方式就叫做位置实参。实参的顺序要与定义中的形参顺序一致。
1 def describe_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重新赋了新的值,则原来的默认值即可忽略。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:面向对象进阶
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash