1. 什么是高阶函数?请举python中内置的高阶函数例子
1. 接受函数为参数,或者把函数作为结果返回的函数是高阶函数(higher-order function)。 map 、 filter 、 reduce 和 apply 。 apply 函数在 Python 2.3 中标记为过时,在 Python 3 中移除了,因为不再需要它了。
1. 什么是高阶函数?请举python中内置的高阶函数例子 2. 马赛克返回的是A还是B?
3. map 、 filter 和 reduce 的现代替代品是什么?
1. 接受函数为参数,或者把函数作为结果返回的函数是高阶函数(higher-order function)。map 、sorted函数就是一例。
2. A。sorted函数的功能是对迭代对象的排序。 自定义函数返回的是字符串的逆转,放在迭代对象这个大整体中就是对象的逆转,无需再排序,因为逆转本身就是一种再排序。 如果以下案例是对返回的长度,放在代对象这个大整体中就是对象的长度统计,这里就做了排序,因为本身没有再排序。
3. map 和 filter 返回生成器(一种迭代器),因此现在它们的直接替代品是生成器表达式(在 Python 2 中,这两个函数返回列表,因此最接近的替代品是列表推导) 在 Python 2 中, reduce 是内置函数,但是在 Python 3 中放到 functools 模块里了。这个函数最常用于求和,自 2003 年发布的 Python 2.3 开始,最好使用内置的 sum 函数。在可读性和性能方面,这是一项重大改善
1. 你在什么情况下见的匿名函数最多
1. 除了作为参数传给高阶函数之外,Python 很少使用匿名函数。由于句法上的限制,非平凡的 lambda 表达式要么难以阅读,要么无法写出。
1. 如果想判断对象能否调用,用什么方法?
1.
1. __call__方法在类中有什么作用
1. 创建了函数类对象的简便方式。但使用时,应此时必须在内部维护一个状态,让 它在调用之间可用,例如 BingoCage 中的剩余元素。维护状态后文会说到,有比如用装饰器、闭包方法可做到。 如下图,实例化对象就可以像函数一样使用,使用callable()调用值为True: 现在我将它注释了,请观察区别
书上的例子是为了展示在函数中同时存在会传入什么参数,但例子太复杂,我简化了一下
这里的cls就称作:仅限关键字参数。 cls 参数只能通过关键字参数指定,它一定不会捕获未命名的定位参数。定义函数时若想指定仅限关键字参数,要把它们放到前面有 * 的参数后面。
1. 函数注解的内容存在在哪个属性里?
1. 注解不会做任何处理,只是存储在函数的 annotations 属性(一个字典)中
1.能替代从序列中取出元素或读取对象属性的 lambda 表达式的方法?
1.
1. functools.partial作用是? 2. functools.partialmethod 与 functools.partial区别
1. functools.partial 这个高阶函数用于部分应用一个函数。部分应用是指,基于一个函数创建一个新的可调用对象,把原函数的某些参数固定。使用这个函数可以把接受一个或多个参数的函数改编成需要回调的 API,这样参数更少。
2. 第一个是处理方法的,第二个是处理函数的。
