龙空技术网

python函数三

springapp 146

前言:

此时你们对“在python中构造函数的名称为”大致比较关注,看官们都想要了解一些“在python中构造函数的名称为”的相关资讯。那么小编同时在网上搜集了一些关于“在python中构造函数的名称为””的相关资讯,希望朋友们能喜欢,你们一起来了解一下吧!

函数对象

在 Python 中,函数本身就是一个对象(与Java不同)。函数可以赋值给变量、作为参数传递给其他函数、作为函数的返回值等等。同时,也可以通过函数名加圆括号的形式调用函数。例如:

def foo():    print('foo')f = foo # f指向foo函数的对象f() # 调用foo函数foodef bar(func):    func() # 调用传入的函数对象bar(foo) # 调用bar,bar调用foofoodef coo():    print('coo')def doo():    #将函数coo作为函数doo的返回值    return coo # fun指向coo函数的对象fun = doo()   fun() # 调用coo函数      coo# 列表中也可以放函数:funcs = [foo, bar]# 调用列表中第一个函数,即foofuncs[0]()

在 Python 中,函数对象与函数调用是分离的两个概念:

函数对象:可以赋值、传参、放入集合框架中的对象函数调用:通过函数名加括号来“使用”函数对象高阶函数

在Python中,常见的高阶函数有:

map:接收一个函数和一个 iterable对象,返回一个class 为map的对象(并不是内置字典类型),其中的元素为原始 iterable 中每个元素调用传入函数后的返回值

#map函数定义map(func, iter)nums = [1,2,3,4,5]def add_one(num):    return num + numres = map(add_one, nums)type(res)<class 'map'>list(res)[2,4,6,8,10]
reduce:接收一个函数和一个 iterable,其中 function 将 iterable 中的前两个元素作为参数,然后返回一个值,并和下一个元素继续调用 function,以此类推,直到只剩一个元素为止。
# reduce函数定义functools.reduce(func, iter, [initial_value]) from functools import reducenums = [1,2,3,4,5]def sum(ele1, ele2):    return ele1 + ele2reduce(sum, nums)15empty = []#对于空list如果声明initial_value会报错reduce(sum, empty, 1) 1
filter:接收一个predicate和一个 iterable, iterable 中的每个元素调用predicate进行筛选。
#filter函数定义filter(predicate, iter)nums = [1,2,3,4,5]def odd(ele):    return (ele % 2) != 0res = filter(odd, nums)type(res)<class 'filter'>list(res)[1,3,5]
sorted:可以对一个序列进行排序,并返回一个新的序列。可以通过传递一个函数作为key参数来指定依据那个字段进行排序, reverse参数指定升序还是降序, 默认是升序。
# sorted函数定义sorted(iterable, key=None, reverse=False) nums = [1,9, 5, 3, 6,2 ,8]sorted(nums)[1, 2, 3, 5, 6, 8, 9]sorted(nums, reverse=True)[9, 8, 6, 5, 3, 2, 1]
partial:包含在functools模块中,可以将一个函数的部分参数固定下来,返回一个新的函数,非常类似别名。
partial(function, arg1, arg2, ..., kwarg1=value1, kwarg2=value2)from functools import partialdef log(message, subsystem):    """Write the contents of 'message' to the specified subsystem."""    print('%s: %s' % (subsystem, message))    ...server_log = partial(log, subsystem='server')server_log('Unable to open socket')

这些高阶函数可以帮助我们写出优雅的代码,让我们更加灵活地处理数据。

参考文献:

[1]

标签: #在python中构造函数的名称为