函数之默认参数
2016-09-12 21:32
197 查看
默认参数值
对于一些函数,你可能希望它的一些参数是 可选 的,如果用户不想要为这些参数提供值的话,这些参数就使用默认值。这个功能借助于默认参数值完成。你可以在函数定义的形参名后加上赋值运算符(=)和默认值,从而给形参指定默认参数值。
注意,默认参数值应该是一个参数。更加准确的说,默认参数值应该是不可变的——这会在后面的章节中做详细解释。从现在开始,请记住这一点。
使用默认参数值
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
例7.5 使用默认参数值
输出
$ python func_default.py
Hello
WorldWorldWorldWorldWorld
它如何工作
名为say的函数用来打印一个字符串任意所需的次数。如果我们不提供一个值,那么默认地,字符串将只被打印一遍。我们通过给形参times指定默认参数值1来实现这一功能。
在第一次使用say的时候,我们只提供一个字符串,函数只打印一次字符串。在第二次使用say的时候,我们提供了字符串和参数5,表明我们想要 说 这个字符串消息5遍。
重要只有在形参表末尾的那些参数可以有默认参数值,即你不能在声明函数形参的时候,先声明有默认值的形参而后声明没有默认值的形参。这是因为赋给形参的值是根据位置而赋值的。例如,def func(a, b=5)是有效的,但是def func(a=5, b)是 无效 的。
对于一些函数,你可能希望它的一些参数是 可选 的,如果用户不想要为这些参数提供值的话,这些参数就使用默认值。这个功能借助于默认参数值完成。你可以在函数定义的形参名后加上赋值运算符(=)和默认值,从而给形参指定默认参数值。
注意,默认参数值应该是一个参数。更加准确的说,默认参数值应该是不可变的——这会在后面的章节中做详细解释。从现在开始,请记住这一点。
使用默认参数值
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
例7.5 使用默认参数值
#!/usr/bin/python # Filename: func_default.py def say(message,times=1): print message * times; # if (a==1): #修改默认参数值 # times=2 # print message * times; #a=1 say('hello') say('world',5)
输出
$ python func_default.py
Hello
WorldWorldWorldWorldWorld
它如何工作
名为say的函数用来打印一个字符串任意所需的次数。如果我们不提供一个值,那么默认地,字符串将只被打印一遍。我们通过给形参times指定默认参数值1来实现这一功能。
在第一次使用say的时候,我们只提供一个字符串,函数只打印一次字符串。在第二次使用say的时候,我们提供了字符串和参数5,表明我们想要 说 这个字符串消息5遍。
重要只有在形参表末尾的那些参数可以有默认参数值,即你不能在声明函数形参的时候,先声明有默认值的形参而后声明没有默认值的形参。这是因为赋给形参的值是根据位置而赋值的。例如,def func(a, b=5)是有效的,但是def func(a=5, b)是 无效 的。
相关文章推荐
- rsync+inotify配置
- Java反编译
- centOs 7 搭建lamp环境
- JDK1.5中的线程池(java.util.concurrent.ThreadPoolExecutor)使用简介
- Java Import
- k8s源码分析--kubelet中docker-manager分析
- 数据结构实验之链表八:Farey序列
- (转)dd巨巨的背包九讲
- LeetCode 392. Is Subsequence
- Javadoc标签
- CentOS7上安装和使用Docker
- 重定向
- 函数之局部变量和使用global语句
- hdoj-【2669 Romantic】
- 解决问题的方法
- Struts2启动时,java.lang.ClassNotFoundException: org.apache.Struts2.dispatcher.FilterDispatcher
- IndiaHacks 2016 - Online Edition (Div. 1 + Div. 2) E. Bear and Forgotten Tree 2 bfs set 反图的生成树★ ★
- 【codevs1037】取数游戏,博弈
- Gneymotion无法启动和Oracle VM VirtualBox常见问题
- Android——ContentProvide 内容提供者+四大组件之三