对高阶函数的简单认识

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段,能提高应用的模块性,和代码的重复利用率

1)函数的一般形式
函数定义:def 函数名()
函数调用:函数名()
定义函数的简单规则:
函数代码块以 def 关键词开头,后接函数标识符名称和圆括号(),函数名不能使用关键字。
任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
函数内容以冒号起始,并且缩进。
return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
# 定义函数
def sum(x,y):
  print('x={0}'.format(x))
  print('y={0}'.format(y))
  returnx+y
m = sum(10,3)#调用函数,参数值和参数名称是按函数声明中定义的的顺序匹配起来的
#m = sum(x=10,y=3) #结果同上
print(m)

2)函数的参数
函数的参数按照定义和传递的情况时分为形式参数和实际参数。
在定义函数时,函数名后面括号中的变量名称叫做形式参数,或者称为形参。
在调用函数时,函数名后面括号中的变量名称叫做实际参数,或者称为实参。
*args和 **kwargs:*args对应的是元组,可接收多个参数;**kwargs对应的是字典,可接收多个为key=value形式的参数。
# 1.给b变量设定一个默认的值
# 如果实参传入的时候,指定了b的值,那b优先选择传入的实参,当b没有传入值时才会使用默认值b=0,默认参数设置必须放在参数的最后
def funA(a,b=0):
print a
print b
funA(10)
运行结果如下:
10
0
# 2.参数为tuple
def funB(a,b,*c): #加了星号(*)的变量名会存放所有未命名的变量参数,并以元组的形式处理
print a
print b
print 'length of c is : %d' % len(c)
print c
funB(1,2,3,4,5,6)
运行结果如下:
1
2
length of c is : 4
(3, 4, 5, 6)
# 3.参数为dict
def funC(a,**b):
print a
print b
funC(100,x='hello',b='world')
运行结果如下:
100
{'x': 'hello', 'b': 'world'}

python 高阶函数

1:函数可以作为一个参数输入

2:函数名可以作为返回值

函数本身也是可以作为一个参数传入

>>> def f(x):
...     return x * x
...
>>> map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
[1, 4, 9, 16, 25, 36, 49, 64, 81]

请注意我们定义的函数f。当我们写f时,指的是函数对象本身,当我们写f(1)时,指的是调用f函数,并传入参数1,期待返回结果1。

因此,map()传入的第一个参数是f,即函数对象本身。

map()函数这种能够接收函数作为参数的函数,称之为高阶函数(Higher-order function)。

posted @ 2019-05-27 21:01  我也不想这么菜  阅读(291)  评论(0编辑  收藏  举报