python函数的参数
一、说几点python函数中有些意思的地方
1.python函数的返回值
Python使用def关键字定义函数,和其他语言一样,函数基本上可以分为有返回值和没有返回值2种,一般来说还可以分为运算功能和处理功能型函数。
>>> def run(name): print name+'runing'
SyntaxError: invalid syntax
>>> def run(name): print(name+'runing')
有返回的函数
>>> def run(name): return name+'runing'
>>> r=run('xiaoming')
>>> r
'xiaomingruning'
>>> print(run('xiaoming '))
xiaoming runing
没有返回值的函数,其实返回的是None
>>> def run(name): print(name+'runing')
>>> run('xi')
xiruning
>>> print(run('xiao'))
xiaoruning
None
2.python函数的文档字符串
在Python中,可以使用三重引号建立多行注释;在函数内部写在第一行的三重引号注释叫做文档字符串,写在文件首行的则称为模块的文档字符串;在其他地方使用了一个三重引号而没有把他赋值给一个变量(这样是一个字符串变量),三重引号之间的所有内容被认为是一个注释。
使用__doc__查看文档字符串内容
3.lambda关键字创建匿名函数
待续…
二、Python函数的参数
1.参数传递(函数调用惯例是,从尾部向前传参?)
python函数的参数列表可以任意多个,传递参数时采取位置绑定和关键字绑定2种方式,用来确认传入的参数。
位置绑定就是我们常见的在对应位置填入参数进行传递的方式;
关键字绑定就是根据函数的参数列表的名字使用赋值语句的方式进行参数传递;
PS:某个参数不能同时使用上面2种方式进行参数传递;第一个参数使用了关键字绑定,后面的参数必须使用关键字绑定
2.定义函数时的参数
定义函数可以只提供一个参数列表,也可以将必要的参数变成可选参数(默认参数),赋给一个缺省值。
为参数提供一个缺省值(或者叫默认值),将参数变成可选的参数
如果一个函数定义的参数有缺省值,这个参数之后的所有参数必须都是默认参数,避免产生二义性(之后的参数都要有缺省值,否则就要放到这个参数的前面)
否则会抛出:SyntaxError: non-default argument follows default argument的异常。
还有一些我们不常用到的参数定义的规则,比如*arg和**arg的形式(可变参数);另外,当参数是列表、元组这些还有一些其他的关键字参数的时候,可能会有一些异常情况,待续(碰到了再查开发者文档^_^)
def example(a, b, c=None, r="w" , d=[], *ae, **ab):
(a,b) are positional parameter
(c=none) is optional parameter
(r="w") is keyword parameter
(d=[]) is list parameter
(*e) is keyword-only
(*opts) is var-keyword parameter
so first re-arrange your parameters