2017
06-20
06-20
Python装饰器为什么难理解?
无论项目中还是面试都离不开装饰器话题,装饰器的强大在于它能够在不修改原有业务逻辑的情况下对代码进行扩展,权限校验、用户认证、日志记录、性能测试、事务处理、缓存等都是装饰器的绝佳应用场景,它能够最大程度地对代码进行复用。但为什么初学者对装饰器的理解如此困难,我认为本质上是对Python函数理解不到位,因为装饰器本质上还是函数函数定义理解装饰器前,需要明白函数的工作原理,我们先从一个最简单函...
继续阅读 >
当我加入Ansible团队之后,我决定写下多年来所学到的软件工程实践和原理方面的经验。我的激情是测试,因为我相信良好的测试既可以确保最低质量标准(可惜很多软件产品都缺乏这一点),也可以指导和塑造开发过程本身。以下许多建议与测试有关,其中一些原则甚至特定于Python,但绝大多数不是。(对于Python程序员,PEP8应该是编程风格和指南的第一站。)1、不要编写你认为以后可能需要但目前不需要的代码。这是对未来想象的...
原文:WhyPythonisaGreatFirstLanguage作者:ElliottHauser翻译:黑色巧克力本文作者列举了一些Python特性,并认为Python是最适合入门的编程语言,一起来看一下。最近发表了三篇关于我的艺术史背景是如何影响我教学的文章。现在要分享一篇,为什么Python对于青少年和成年人是入门语言的最佳选择。伟大的入门编程语言有什么特征呢?或者换一种方式问,“当我们教他们编程时,应该给予他们什么?”对...
爬虫,几家欢喜几人愁。爬者,拿到有利数据,分析行为,产生价值。被爬者,一是损失数据,二是遇到不怀好意的爬虫往往被全站复制或服务器受冲击而无法服务。今天说的是一只友好的爬虫是如何构建出来的,请勿用它伤害他人。爬虫一生所遇俗话说,如果我比别人看得远些,那是因为我站在巨人们的肩上。前人之鉴,后人之师。小爬虫在胎教的时候就该传授它的前辈参悟的人生经验,了解网络的可怕之处。看看我提供的胎教课程:...
本文我列出几个Python高级技巧:1.contextmanager写Python代码的时候经常将一系列操作放在一个语句块中,Python2.5加入了with语法,实现上下文管理功能,这让代码的可读性更强并且错误更少。最常见的例子就是open,如果不使用with,使用open会是这样:如果使用with,可以简化为两行:在执行完缩进的代码块后会自动关闭文件。创建上下文管理器实际就是创建一个类,添加__enter__和__exit__方法。看看如何...
当你在自己的Python程序中采用了基于事件循环的异步编程方法之后,你就会发现自己不自觉地被其牢牢吸引住,并不是说这一方法多么棒,而是因为你不得不想办法保证程序中的任意环节都不能是阻塞的!例如当前的场景是希望从MongoDB中读取每一条未处理过的数据,下载并保存其中的图片信息,然后更新数据库的内容。Python常用的MongoDB异步驱动是Motor:结合asyncio使用方法如下:importmotor.motor_async...
1、使用re.DEBUG查看正则表达式的匹配过程正则表达式是Python的一大特色,但是调试起来会很痛苦,很容易得出一个bug。幸运的是,Python可以打印出正则表达式的解析树,通过re.debug来显示re.compile的完整过程。一旦你理解了语法,你就可以发现你的错误。在这里我们可以看到[/font]忘了去除[]2、enumerate函数用于遍历列表中的元素以及它们的下标3、对默认实参要多加小心相反,你应该使用一个标记值表示“无定义”,来替...