Python-函数
1 # 位置参数 函数:必须以正确的顺序传入参数 2 def person1(name,age): 3 print('我是{},年龄{}'.format(name,age)) 4 5 person1('小明', 18) 6 7 8 # 关键字参数 函数:可以通过关键字传参,与传入的顺序无关 9 def person2(name,age): 10 print('我是{},年龄{}'.format(name,age)) 11 12 person2(name='小明',age=18) 13 14 # 默认参数 函数:在定义的过程中设置默认值 15 def person3(name='小李',age=20): 16 print('我是{},年龄{}'.format(name,age)) 17 18 person3() # 使用默认参数 19 person3(name = '小王') # 自定义参数修改默认参数 20 person3(name = '小张', age=30) 21 22 # 位置参数与关键字参数 同时存在的时候,先写位置参数,再写关键字参数 23 def person4(name, age=16): 24 print('我是{},年龄{}'.format(name,age)) 25 26 person4('小赵') 27 person4('小周',age=21) 28 29 # 不定长参数 函数:在参数前面带一个* 把参数放在元组里面 30 def person6(*args): 31 print('我是{},年龄{}'.format(args[0],args[1])) 32 33 person6('小董',23) 34 35 def person5(name, *args): 36 print('我是{},年龄{}'.format(name,args)) 37 38 person5('小吴',10, '男') 39 40 # *单独出现,调用的时候通过关键字调用 41 42 def person9(name,age,*,sex): 43 return name, age, sex 44 45 print(person9('小田',28, sex='女')) 46 47 # 关键字不定长度参数 函数:参数是字典的形式 48 def person7(**kwargs): 49 print('我是{},年龄{}'.format(kwargs['name'],kwargs['age'])) 50 51 person7(name='小孙', age=24) 52 53 # *和**同时存在 54 def person8(*args, **kwargs): 55 print(args) 56 print(kwargs) 57 person8('小王',25, sex='男') 58 59 # 顺便说一下解包 60 # 解包: * 解包元组,** 解包字典 61 def person10(*args, **kwargs): 62 print(args) 63 print(kwargs) 64 65 p1 = ('小马',26) 66 p2 = {'name':'小杨', 'age':27} 67 68 person10(p1,p2)
匿名函数
python 使用 lambda 来创建匿名函数。
- lambda只是一个表达式,函数体比def简单很多。
- lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
- lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
- 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
1 #!/usr/bin/python 2 # -*- coding: UTF-8 -*- 3 4 # 可写函数说明 5 sum = lambda arg1, arg2: arg1 + arg2 6 7 # 调用sum函数 8 print "相加后的值为 : ", sum( 10, 20 ) 9 print "相加后的值为 : ", sum( 20, 20 )
本文来自博客园,作者:术科术,转载请注明原文链接:https://www.cnblogs.com/shukeshu/p/14968037.html