90 % 的 Python 开发者不知道的描述符应用
经过第一篇的讲解,我们已经知道该如何定义描述符,且明白了描述符是如何工作的。若你还未阅读过上一篇,建议你点击这里学习一下再回来看这篇文章:MingleWong:Python为什么要使用描述符?zhuanlan.zhihu.com正常人所见过的描述符的用法就是上篇文章提到的那些,我想说的是那只是描述
一篇文章搞懂装饰器所有用法(建议收藏)
对于每一个学习Python的同学,想必对@符号一定不陌生了,正如你所知,@符号是装饰器的语法糖,@符号后面的函数就是我们本文的主角:装饰器。装饰器放在一个函数开始定义的地方,它就像一顶帽子一样戴在这个函数的头上。和这个函数绑定在一起。在我们调用这个函数的时候,第一件事并不是执行这个函数,而是将这个函
Python为什么要使用描述符?
学习Python这么久了,说起Python的优雅之处,能让我脱口而出的,Descriptor(描述符)特性可以排得上号。描述符是Python语言独有的特性,它不仅在应用层使用,在语言的基础设施中也有涉及。我可以大胆地猜测,你对于描述符的了解是始于诸如DjangoORM和SQLAlchemy中的字段对
Python与设计模式:策略模式
完成一项任务往往有多种方式,我们将其称之为策略。比如,超市做活动,如果你的购物积分满1000,就可以按兑换现金抵用券10元,如果购买同一商品满10件,就可以打9折,如果如果购买的金额超过500,就可以享受满减50元的优惠。这是三个不同的促销策略。再比如,联系朋友、同学,可以打电话,也可以发短信,可以
你知道Python里的「单分派泛函数」吗?
泛型,如果你学过Java,应该对它不陌生吧。但你可能不知道在Python中(3.4+),也可以实现简单的泛型函数。在Python中只能实现基于单个(第一个)参数的数据类型来选择具体的实现方式,官方名称是single-dispatch。你或许听不懂,说简单点,就是可以实现第一个参数的数据类型不同,其调
每周分享五个 PyCharm 使用技巧(五)
文章首发于微信公众号:Python编程时光大家好,这是本系列PyCharm的高效使用技巧的第五篇。按照惯例,本次还是分享5个。本系列前四篇如下,若还没看的,你可以点击查阅MingleWong:受用一生的高效PyCharm使用技巧(一)zhuanlan.zhihu.comMingleWong:每周分
每周分享五个 PyCharm 使用技巧(四)
文章首发于微信公众号:Python编程时光大家好,这是本系列PyCharm的高效使用技巧的第四篇。按照惯例,本次还是分享5个。本系列已经全部更新完成,传送门如下,你可以点击查阅:MingleWong:受用一生的高效PyCharm使用技巧(一)zhuanlan.zhihu.comMingleWong
每周分享五个 PyCharm 使用技巧(三)
大家好,这是本系列PyCharm的高效使用技巧的第三篇。按照惯例,本次还是分享5个。本系列已经全部更新完成,传送门如下,你可以点击查阅:MingleWong:受用一生的高效PyCharm使用技巧(一)zhuanlan.zhihu.comMingleWong:每周分享五个PyCharm使用技巧(二)
每周分享五个 PyCharm 使用技巧(二)
文章首发于微信公众号:Python编程时光大家好,这是本系列PyCharm的高效使用技巧的第二篇。按照惯例,本次还是分享5个。本系列已经全部更新完成,传送门如下,你可以点击查阅:MingleWong:受用一生的高效PyCharm使用技巧(一)zhuanlan.zhihu.comMingleWong
受用一生的高效 PyCharm 使用技巧(一)
文章首发于微信公众号:Python编程时光如需转载请私信联系我PyCharm应该是大多数开发者的首选IDE,每天我们都在上面敲着熟悉的代码,写出一个又一个奇妙的功能。一个每天都在使用的工具,如果能掌握一些高效的使用技巧,肯定会给我们的开发效率带来质的提升。今天我就来写一写我在平时开发中一直在用的,可
深入理解 Python 中的上下文管理器
提示:前面的内容较为基础,重点知识在后半段。with这个关键字,对于每一学习Python的人,都不会陌生。操作文本对象的时候,几乎所有的人都会让我们要用withopen,这就是一个上下文管理的例子。你一定已经相当熟悉了,我就不再废话了。withopen('test.txt')asf:printf.r
Python中最好用的命令行参数解析工具
Python做为一个脚本语言,可以很方便地写各种工具。当你在服务端要运行一个工具或服务时,输入参数似乎是一种硬需(当然你也可以通过配置文件来实现)。如果要以命令行执行,那你需要解析一个命令行参数解析的模块来帮你做这个苦力活。Python本身就提供了三个命令行参数解析模块,我这里罗列一下它们的大致情况
你所不知道的 Python 冷知识!(建议收藏)
#01.省略号也是对象...这是省略号,在Python中,一切皆对象。它也不例外。在Python中,它叫做Ellipsis。在Python3中你可以直接写…来得到这玩意。>>>...Ellipsis>>>type(...)<class'ellipsis'&g
30分钟教你快速搭建一个顔值超高的博客
作者:王炳明个人公众号:Python编程时光10个程序员里,有9个人都有写博客的习惯。这是非常好的习惯,沉淀知识的同时也能帮助他人,这值得每个程序员,投入时间和精力去坚持做下去。写博客的平台有很多,CSDN,博客园,51CTO,还有人会使用Hexo+GitHub,WordPress,比较会折腾的人还
Python并发编程之实战异步IO框架:asyncio 下篇(十一)
大家好,并发编程进入第十一章。前面两节,我们讲了协程中的单任务和多任务这节我们将通过一个小实战,来对这些内容进行巩固。在实战中,将会用到以下知识点:多线程的基本使用Queue消息队列的使用Redis的基本使用asyncio的使用.动态添加协程在实战之前,我们要先了解下在asyncio中如何将协程态添
Python并发编程之学习异步IO框架:asyncio 中篇(十)
今天的内容其实还挺多的,我准备了三天,到今天才整理完毕。希望大家看完,有所收获的,能给小明一个赞。这就是对小明最大的鼓励了。为了更好地衔接这一节,我们先来回顾一下上一节的内容。上一节,我们首先介绍了,如何创建一个协程对象.主要有两种方法通过async关键字,通过@asyncio.coroutine装
Python并发编程之初识异步IO框架:asyncio 上篇(九)
今天的内容其实还挺多的,我准备了三天,到今天才整理完毕。希望大家看完,有所收获的,能给小明一个赞。这就是对小明最大的鼓励了。为了更好地衔接这一节,我们先来回顾一下上一节的内容。上一节,我们首先介绍了,如何创建一个协程对象.主要有两种方法通过async关键字,通过@asyncio.coroutine装
Python并发编程之深入理解yield from语法(八)
大家好,并发编程进入第八篇。直到上一篇,我们终于迎来了Python并发编程中,最高级、最重要、当然也是最难的知识点--协程。当你看到这一篇的时候,请确保你对生成器的知识,有一定的了解。当然不了解,也没有关系,你只要花个几分钟的时间,来看下我上一篇文章,就能够让你认识生成器,入门协程了。再次提醒:本系
Python并发编程之从生成器使用入门协程(七)
大家好,并发编程进入第七篇。从今天开始,我们将开始进入Python的难点,那就是协程。为了写明白协程的知识点,我查阅了网上的很多相关资料。发现很难有一个讲得系统,讲得全面的文章,导致我们在学习的时候,往往半知半解,学完还是一脸懵逼。学习协程的第一门课程,是要认识生成器,有了生成器的基础,才能更好地理
Python并发编程之消息队列补充及如何创建线程池(六)
Python并发编程之消息队列补充及如何创建线程池(六)大家好,并发编程进入第六篇。在第四章,讲消息通信时,我们学到了Queue消息队列的一些基本使用。昨天我在准备如何创建线程池这一章节的时候,发现对Queue消息队列的讲解有一些遗漏的知识点,而这些知识点,也并不是无关紧要的,所以在今天的章节里,我