Python学习笔记--《简明Python教程》之默认函数参数和关键参数函数
2014-04-30 16:31
926 查看
一.默认参数值的函数:
如果希望函数中的参数是可选的,如果用户不想要为这些参数提供值得话,这些参数就使用默认值。方法为在函数定义的形参后加上赋值运算符(=)和默认值,从而给形参指定默认参数值。 默认的参数值是不可变的。
例如:
#!/urs/bin/python
#Filename:funcDefaultParam.py
def multi(value,times=1):
print value*times
multi(5)
multi(5,2)
输出
$python funcDefaultParam.py
5
10
如果我们不提供默认值形参的值,那么输出结果默认只乘以1倍,通过给形参times指定默认值1来实现,如果给形参times指定其他值,那么输出也将是不同的倍数。
Note:
只有在形参表末尾的那些参数可以有默认参数值,即你不能在声明函数形参的时候,先声明有默认值的形参而后申明没有默认值的形参。因为赋给形参的值是根据位置而赋值的。
例如,def foo(val1,val2=1)是有效的,但是def foo(val1=1,val2)是无效的。
二.关键参数函数:
如果我们的函数有多个参数,我们可以通过命名来为这些参数赋值(这些参数被称作关键参数),我们根据名字(关键字)而不是位置(默认参数函数中是根据位置)来给函数指定实参。
这样做和默认参数的函数相比,
不同点:我们可以不用根据参数的顺序赋值,使用函数更加简单了。
相同点:我们可以不许用给有默认值的参数赋值,只需给我们想要的参数赋值。
例如:
#!/usr/bin/python
#Filename:funcKeyParam.py
def multi(value,times1=1,times=1):
print value*times1*times2
multi(5)
multi(5,2,3)
multi(5,times2=2)
multi(times2=2,times1=3,value=5)
输出
$python funcKeyParam.py
5
30
10
30
三.比较:按位置赋值时,两者是一样的,但是关键参数赋值可以根据名字赋值,这样就不会导致使用默认参数中按位置赋值发生的错误。
例如默认参数中的函数也可以这样赋值:multi(times=5,value=2) #不按照位置赋值,
但是这样赋值就发生错误:multi(times=2,5) #SyntaxError: non-keyword arg after keyword arg
两个官方学习python的链接(一个中文,一个英文):
http://www.pythondoc.com/pythontutorial27/index.html https://docs.python.org/2/contents.html
如果希望函数中的参数是可选的,如果用户不想要为这些参数提供值得话,这些参数就使用默认值。方法为在函数定义的形参后加上赋值运算符(=)和默认值,从而给形参指定默认参数值。 默认的参数值是不可变的。
例如:
#!/urs/bin/python
#Filename:funcDefaultParam.py
def multi(value,times=1):
print value*times
multi(5)
multi(5,2)
输出
$python funcDefaultParam.py
5
10
如果我们不提供默认值形参的值,那么输出结果默认只乘以1倍,通过给形参times指定默认值1来实现,如果给形参times指定其他值,那么输出也将是不同的倍数。
Note:
只有在形参表末尾的那些参数可以有默认参数值,即你不能在声明函数形参的时候,先声明有默认值的形参而后申明没有默认值的形参。因为赋给形参的值是根据位置而赋值的。
例如,def foo(val1,val2=1)是有效的,但是def foo(val1=1,val2)是无效的。
二.关键参数函数:
如果我们的函数有多个参数,我们可以通过命名来为这些参数赋值(这些参数被称作关键参数),我们根据名字(关键字)而不是位置(默认参数函数中是根据位置)来给函数指定实参。
这样做和默认参数的函数相比,
不同点:我们可以不用根据参数的顺序赋值,使用函数更加简单了。
相同点:我们可以不许用给有默认值的参数赋值,只需给我们想要的参数赋值。
例如:
#!/usr/bin/python
#Filename:funcKeyParam.py
def multi(value,times1=1,times=1):
print value*times1*times2
multi(5)
multi(5,2,3)
multi(5,times2=2)
multi(times2=2,times1=3,value=5)
输出
$python funcKeyParam.py
5
30
10
30
三.比较:按位置赋值时,两者是一样的,但是关键参数赋值可以根据名字赋值,这样就不会导致使用默认参数中按位置赋值发生的错误。
例如默认参数中的函数也可以这样赋值:multi(times=5,value=2) #不按照位置赋值,
但是这样赋值就发生错误:multi(times=2,5) #SyntaxError: non-keyword arg after keyword arg
两个官方学习python的链接(一个中文,一个英文):
http://www.pythondoc.com/pythontutorial27/index.html https://docs.python.org/2/contents.html
相关文章推荐
- A Byte of Python 笔记(5)函数:定义、形参、局部变量、默认参数、关键参数
- python函数参数学习笔记
- Python3 学习笔记13_函数的参数_20180305
- Python学习笔记——函数参数
- 【Python】学习笔记十三:函数的参数对应
- Python学习笔记7:函数对象及函数对象作参数
- python 笔记 之 函数中默认参数的影响
- 初学Python的学习笔记2----dist字典,set集合,声明函数,函数参数
- Scala 学习笔记(五)------定义函数指定默认参数
- Python学习笔记7-把函数当参数传递、指定可变参数
- Python3学习笔记05-字典、文件输入输出、模块、函数参数传递
- python学习笔记12(函数三): 参数类型、递归、lambda函数
- 11. Python脚本学习笔记十一函数与参数
- 廖雪峰python函数的参数学习笔记
- Python学习笔记7-把函数当参数传递、指定可变参数
- Python学习笔记7-把函数当参数传递、指定可变参数
- Python学习笔记7-把函数当参数传递、指定可变参数
- Noah的学习笔记之Python篇:函数“可变长参数”
- Python学习笔记5:函数参数详解
- python学习笔记11(函数二): 参数的传递、变量的作用域