标签:
Function,函数,主要是为了:1提高代码的复用程度,2将程序模块化。
定义函数
在Python中,使用def 用来定义函数,一般函数的定义如下:
def name(arg1,arg2,....):
statements
return value
其中,return 用来返回函数执行的结果
一个简单的sample如下:
>>> def times(x,y): ... return x*y ... >>> times(5,2) 10 >>>
函数执行的结果可以放入到一个变量中:
>>> result=times(5,2) >>> result 10 >>>
Python 不需要定义参数的类型,函数结果的返回完全依赖于传入参数的类型,在上例中,Python自动识别传入的参数为两个数字,并作出返回值,当传入一个列表参数的时候,结果如下:
>>> li=[1,2,3] >>> times(li,2) [1, 2, 3, 1, 2, 3] >>>
传入字符串的时候,结果如下:
>>> a=‘Hello‘ >>> times(a,3) ‘HelloHelloHello‘ >>>
所以简单的Summary一下,传入的函数参数会被python自动识别,也就是在运算的时候‘*‘识别并对不同类型的参数变量作出了不同的应对。但是如果‘*‘不能识别或者不支持传入的参数,那么在函数运行的时候还是会报错的,如下:
>>> b=‘x‘ >>> times(a,b) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 2, in times TypeError: can‘t multiply sequence by non-int of type ‘str‘ >>>
所以,在不确定的情况下,可以先实验一下,传入的参数会不会造成error。
函数参数的类型
一般参数
关键字参数:通过参数名进行匹配
默认参数:没有传入值的参数定义的默认值
可变参数:*开头,可以是多个基于位置或者关键字的参数
具体,如下的函数定义中传入了不同的参数,代表了不同的含义:
def fun(*name) #传入不定量的参数,这些参数会被组成一个元祖 def func(name=value) #定义了参数的默认值 def func(**name) #传入不定量的参数,这些参数会被组成一个字典 def func(name,*args) #混合方式,多余的参数会被组成一个元祖传入 def func(name,**args) #混合方式,多余的参数会被组成一个字典传入 def func(*,name=value) #混合方式,后面的参数name必须通过关键字参数传入
待续。。。。。
标签:
原文地址:http://www.cnblogs.com/cedrelaliu/p/5151817.html