资讯专栏INFORMATION COLUMN

流畅的 Python - 4. 函数

Salamander / 3359人阅读

摘要:今天深入接触了中的函数,发现函数比我想象的要高深。介绍的几个高阶函数有内置的和函数,模块中的。可调用对象即能被调用运算符应用的对象,可使用内置的函数检测。函数的三个属性和放置了函数对象参数的一些信息。

今天深入接触了 Python 中的函数,发现函数比我想象的要高深。

Python 中万物皆对象,这一章就介绍了函数作为对象的一些属性。首先是测试所有对象共有的属性__doc__,可以看到它是function类的实例。然后是变量赋值、作为参数传递。这些概念虽然之前也知道,但是还没怎么用过,偶尔在key关键字参数的地方使用。

之后就是高阶函数了。有接触过函数式语言,所以现在看起来还是没难度的。介绍的几个高阶函数有内置的mapfiltersorted函数,functools模块中的reduce。而mapfilterreduce函数在 Python 中有了更好的替代——列表推导和生成器表达式。

Python 中,匿名函数由lambda关键字创建,它的定义体只能使用纯表达式。

可调用对象即能被调用运算符(())应用的对象,可使用内置的callable函数检测。

当一个对象实现了__call__方法,它就是一个函数类对象,可被调用。函数还是跟普通的类有所不同,它有一些独有的属性,比如__defaults__

Python 的参数处理机制有三个比较有趣,一个是新增的仅限关键字参数,另外两个是定位参数,***展开可迭代对象映射到单个参数,其中**映射的是字典,仅限关键字参数表示只能通过关键字来指定,且只能放到*后面。可放一个*只支持仅限关键字参数。

函数的三个属性__defaults____kwdefaults____code__放置了函数对象参数的一些信息。而使用inspect模块中的signature更加方便。

函数注解「用于为函数声明中的参数和返回值附加元数据」,它存储在函数的__annotations__属性中。

最后介绍了两个包operatorfunctools,用于支持函数式编程风格。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/41626.html

相关文章

  • 流畅python读书笔记-第一章Python 数据模型

    摘要:第一章数据类型隐式方法利用快速生成类方法方法通过下标找元素自动支持切片操作可迭代方法与如果是一个自定义类的对象,那么会自己去调用其中由你实现的方法。若返回,则会返回否则返回。一个对象没有函数,解释器会用作为替代。 第一章 python数据类型 1 隐式方法 利用collections.namedtuple 快速生成类 import collections Card = collec...

    tomener 评论0 收藏0
  • 流畅python读书笔记-第一章Python 数据模型

    摘要:第一章数据类型隐式方法利用快速生成字典方法方法通过下标找元素自动支持切片操作可迭代方法与如果是一个自定义类的对象,那么会自己去调用其中由你实现的方法。若返回,则会返回否则返回。一个对象没有函数,解释器会用作为替代。 第一章 python数据类型 1 隐式方法 利用collections.namedtuple 快速生成字典 import collections Card = coll...

    FullStackDeveloper 评论0 收藏0
  • 流畅 Python - 0. 数据模型

    摘要:于是打算看一下流畅的。第一章是讲数据模型,主要是的魔术方法特殊方法,它们以双下划线开头和结束,能让我们自己写的类拥有类似内置对象那样的属性和方法。第三个出场的的是,把对象用字符串的形式表示出来。第六个是,用于实现自己定义的布尔值。 接触 Python 有一段时间了,但是到现在也没怎么用 Python 写过一些有用的东西。基础虽然还行,但更深入的就不怎么了解了。于是打算看一下《流畅的 P...

    Bowman_han 评论0 收藏0
  • 流畅python读书笔记-第二章Python 数据结构

    摘要:把具名元组以的形式返回,我们可以利用它来把元组里的信息友好地呈现出来。数组支持所有跟可变序列有关的操作,包括和。双向队列和其他形式的队列类双向队列是一个线程安全可以快速从两端添加或者删除元素的数据类型。 列表表达式 >>> symbols = $¢£¥€¤ >>> codes = [ord(symbol) for symbol in symbols] >>> codes [36, 16...

    syoya 评论0 收藏0
  • 流畅 Python - 5. 装饰器与闭包

    摘要:看了这一章,发现原来是装饰器,又一新知识。期间,装饰器会做一些额外的工作。书中介绍了模块中的三个装饰器。另一个是,这个装饰器把函数结果保存了起来,避免传入相同参数时重复计算。叠放不奇怪,装饰器返回的就是函数或可调用对象。 在 Web 框架 Flask 中,最常看到的或许是以@app.route开头的那行代码。由于还是刚接触 Flask,所以对这种语法还不熟悉。看了这一章,发现原来是装饰...

    Markxu 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<