摘要: operator模块 在函数式编程中,经常需要把算术运算符当作函数使用。例如,不使用 递归计算阶乘。求和可以使用 sum 函数,但是求积则没有这样的函数。 我们可以使用 reduce 函数(5.2.1 节是这么做的),但是需要一个函数 计算序列中两个元素之积。示例 5-21 展示如何使用 lambd 阅读全文
posted @ 2019-09-29 18:16 顽强的allin 阅读(544) 评论(0) 推荐(0) 编辑
摘要: Python 3 提供了一种句法,用于为函数声明中的参数和返回值附加元数据。二者唯一的区别在第一行。 示例 5-19 有注解的 clip 函数 def clip(text:str, max_len:'int > 0'=80) -> str: ➊ """在max_len前面或后面的第一个空格处截断文本 阅读全文
posted @ 2019-09-29 16:23 顽强的allin 阅读(619) 评论(0) 推荐(0) 编辑
摘要: 不仅 Python 函数是真正的对象,任何 Python 对象都可以表现得像函数。为此,只需实现实例方法 __call__。 示例 5-8 实现了 BingoCage 类。这个类的实例使用任何可迭代对象构建,而且会在内部存储一个随机顺序排列的列表。调用实例会取出一个元素。 示例 5-8 bingoc 阅读全文
posted @ 2019-09-29 14:38 顽强的allin 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 除了用户定义的函数,调用运算符(即 ())还可以应用到其他对象上。如果想判断对象能否调用,可以使用内置的 callable() 函数。Python 数据模型文档列出了 7 种可调用对象。 用户定义的函数 使用 def 语句或 lambda 表达式创建。 内置函数 使用 C 语言(CPython)实现 阅读全文
posted @ 2019-09-29 11:12 顽强的allin 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 接受函数为参数,或者把函数作为结果返回的函数是高阶函数(higherorder function)。map 函数就是一例,如示例 5-2 所示。此外,内置函数 sorted 也是:可选的 key 参数用于提供一个函数,它会应用到各个元素上进行排序。 例如,若想根据单词的长度排序,只需把 len 函 阅读全文
posted @ 2019-09-29 10:37 顽强的allin 阅读(185) 评论(0) 推荐(0) 编辑