学习
实践
活动
专区
工具
TVP
写文章

如何让你的Python代码更加pythonic,你真的知道吗?

Pythonic是什么?

是更加Python的Python,换句换说就是用Python的风格写出来的Python,为什么这样说呢?

很多人都是学了c语言,学了Java,然后去学Python,自然会带着这样c语言和Java的风格,但是有时候,Python提供了更加简单便捷的方式去实现。下面我们就看看是什么样的把。

1、列表推倒式

当我们需要对列表进行循环推导的时候,下面的做法是不是很常见呢?

那么什么是PythonIC的写法呢?看下面,使用列表推导式还可以加快推导的速度

2,使用枚举(enumerate)对象

其实说实话,我对枚举对象也不是很熟悉,但是习惯使用它,可以让你更加方便,快捷

先看一下我们平常的代码:

虽然这次代码区别不是很大,但是这样能更加的快速,而且加快你的开发效率,Python开发者的至理名言:能够一行写成的事,绝不用两行来写(当然,不是让你故意去压缩代码,如果你是故意去压缩代码,那就违背了这句话的本意了)

这是我的一点分享,希望帮助到你

3,迭代器

迭代器只不过是一个实现迭代协议的容器对象,它基于两个方法:

next 返回容器的下一个内容

__iter__ 返回迭代器本身

下面是迭代器的原理,能够帮助你理解这两个东西

4,生成器(当需要一个将返回一个序列或者在循环中执行的函数时就应该考虑使用生成器)

生成器提供了一个出色的方法,使得需要返回一系列元素的函数所需的代码更加的简单、高效。基于yield指令,可以暂停一个函数并返回中间结果。该函数将保存执行环境并在必要的时候恢复。

生成器一般在使用异步爬虫爬取大量的数据是使用的一种方法(当然,不仅于此,还有很多很多地方使用到了这一方法),到底是如何使用的呢?下面举一个例子:

5,装饰器(decorator)

装饰器使得函数和方法封装(接受一个函数并返回增强版本的一个函数)更加容易阅读和理解。其实总体说来,装饰器也就是一个函数,一个用来包装函数的函数,返回一个修改之后的函数对象,将其重新赋值原来的标示符,并永久丧失对原始函数对象的访问。

这样形容很复杂,如果用过flask的人肯定都知道什么是装饰器,因为其中最主要的路由就是一个装饰器,而且里面的钩子函数基都是装饰器,还是举个例子帮助理解:

这就是最简单的装饰器了,更加深入的装饰器,其实也差不多,万变不离其宗。

6、使用with语句

with语句能够在你的文件处于异常的时候仍然帮助你关闭文件,如果不这样的话,有时候你可能由于中间的报错而导致了数据的丢失(没有关闭文件或者刷新文件,数据是在内存上的,一单断点就会全部丢失)

如果不这样的话,你就可能需要写一个异常处理,那就又是好几行代码了

7、变量交换

这个最重要的竟然差点忘记了,平时我们用c语言写的时候,如果想要交换两个变量的值,总是需要再增加一个变量

那么Python呢?

总结得差就这些了,其实还有很多,如果大家有什么看法或者是新的想法,欢迎评论,另外需要免费学习资料的可以加群。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180324A1HUKZ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券