更多课程 选择中心


Python培训

400-996-5531

其他语言无法比拟的6个Python特性


Python有着丰富精巧的功能和技巧,会让你惊叹“哇!Python这么酷”。

我们选取了一些我们很喜欢的功能并在下文中依次展示。希望你能从中学习到一些东西,并感到吃惊“我学完才知道这样写代码更整洁”。

生成器

生成器是产生一个值的序列的对象。它可以用作迭代器,也就是说它可以用于for语句,或者用于next函数中来得到下一个值。但是你只能迭代一次值。

可以通过一个使用yield关键字来生成值的函数创建生成器。当调用生成器函数时,将创建一个生成器对象。

yield操作符

对于简单的情况,可以使用生成器表达式创建生成器。与列表相反,值将在运行中计算,而不是一次性全部计算并存储在内存中。

生成器表达式

Collections模块

collections是标准库中实现替代容器数据类型的一个模块。

例如,一个Counter是一个集合,其中元素被存储为字典的键,而它们的计数被存储为字典的值:

计数器

defaultdict是dict的一个子类,它允许调用时传入一个工厂函数,这个函数在键值缺失时自动生成新的值。

defaultdict

defaultdict还可用于创建一个树型数据结构。

Itertools模块

itertools是标准库中的一个模块,可用于创建迭代器以实现有效的循环。

例如,permutations会生成一组序列的所有可能排列:

permutations

类似地,combinations会根据所选择的项目个数n,生成一组序列中的所有可能的n项的组合方式,使得(不同于permutations)顺序无关紧要:

combinations

itertools还包含其他实用函数,例如chain,它采用迭代方式,创建一个新的迭代器,由给定的迭代顺序返回元素形成单个序列:

chain

Packing/Unpacking

*运算符,被称为拆包或splat运算符,允许非常方便的从列表或元组到独立的变量或参数的转换,反之亦可。

扩展可迭代序列的拆包

当你的函数的参数已经在列表或元组中,可对其拆包。如果是列表你可以用*args来拆包,如果是字典就用**kwargs。

Unpacking参数

反过来也是可以的,你可以定义一个函数,将单个tuple里的所有参数和单个dict里的所有的关键字参数组包。

关键字参数

装饰器

装饰器是一个接受函数作为参数并返回函数的函数。

例如,在下面的代码中,cache函数用作装饰器来记住已经计算出的斐波那契数:

装饰器

functools模块提供了几个装饰器,例如lru_cache,它可以实现我们刚刚做的:存储。当使用相同的参数调用给定的函数时,它可以保存最近的调用来节省时间:

Iru_cache

上下文管理器

上下文管理器主要用于正确管理资源。上下文管理器最常用的用途是通过语句with open("workfile", "r") as f:打开文件。然而,大多数开发人员不知道其内部是如何运作的,也不知道如何自己创建。

实际上,一个上下文管理器只是一个实现方法__enter__和__exit__的类。

上下文管理器

简单使用时,也可以使用带有yield关键字的生成器函数,也可使用@contextmanager装饰器。

使用@contextmanager的上下文管理器

希望您喜欢我们在Python 3中选择实现的这几个最佳功能,请在论坛或Github上踊跃分享您的反馈:)

预约申请免费试听课

填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:Python Web 框架介绍,让你 Python 开发更轻松的框架
下一篇:Python-基础之函数使用注意点

2021年Python全套免费视频教程在哪里?

Python编程学习路线

Python最高有几级?

人工智能与语音遥控的区别?

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省