python学习笔记 函数

形式:

def function(a,b,c=0,*args,**kw)#a,b必选参数,*args可变参数,**kw关键字参数

1.函数的返回值可以是多个参数。多个参数时,实际上返回的是一个tuple

2.c=0,是默认参数,但是需要注意的是,其是否初始化的问题。

1 def add_end(L = None):#不能直接写L=[]因为两次重复调用,会出现问题。详情可以看http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001374738449338c8a122a7f2e047899fc162f4a7205ea3000
2     if L == None:
3         L = []
4     L.append('END')
5     return L
View Code

上面函数如果修改为L=【】,重复多次调用add_end会出现问题

3.记得要检查参数类型 isinstance(args,(type1,.....))

1 #z实际上一般的函数是需要检查函数类型的。一般使用内置函数isinstance()
2 def myabs(x):
3     if not isinstance(x,(int,float)):
4         raise TypeError("bad operand type")
5     if x >= 0:
6         return x
7     return -x
View Code

4.可变参数,其形式为*args.在调用时,使用func(1,2,3,4)时,其实其用到的是tuple,也就是说其参数不可改变。

 1 #可变参数
 2 def calc(numbers):
 3     sum = 0
 4     for i in numbers:
 5         sum += i
 6     return sum
 7 def calc1(*numbers):
 8     sum = 0
 9     for i in numbers:
10         sum += i
11     return sum
12 #可变参数与不可变参数
13 print calc([1,2,3])
14 print calc((1,2,3))
15 print calc1(1,2,3)
16 #如果可变参数调用的的是一个list,那么我们可以使用这种形式
17 l = [1,2,3]
18 print calc1(*l)
View Code

5。**kw为关键字参数,其为一个dict

1 #关键字参数 **kw
2 def kw(name,job,**kw):
3     print 'name:',name, 'job:',job,'other',kw
4 calc1(1,2,3,4)
5 #关键字参数
6 kw('tom','doc',gender = 'M')
7 #可变参数与不可变参数
View Code

6. 多种参数综合使用时注意其使用顺序,另外需要注意的是**key种的key不能使用已经出现的参数名

1 def all(a,b,c=0,*d,**e):
2     print 'a:',a
3     print 'b:',b
4     print 'c:',c
5     print 'd:',d
6     print 'e:',e
7 all(1,2,3,4)
8 all(1,2,3,4,5,6,7,asa = 8)
9 all(1,2,[3,4,5,6,7])
View Code

 

posted @ 2017-03-01 10:48  不说话的汤姆猫  阅读(150)  评论(0编辑  收藏  举报