
python
文章平均质量分 81
烟火君
这个作者很懒,什么都没留下…
展开
-
python属性查找顺序
引言以前对这一部分的理解比较混乱,查找了一些资料,自我整理一下。作用域对于变量的搜索是按照一定顺序进行的,同名变量将会存在互相屏蔽的问题,所以需要弄清楚python里的作用域信息。 在python中作用域一共有四个,按照顺序被搜索:1. (Local)局部作用域,每当调用一个函数的时候就创建了一个局部作用域,它最先被搜索。2. (Enclosing)嵌套的父级函数的局部作用域原创 2016-12-26 19:59:41 · 3745 阅读 · 0 评论 -
用Python从零开始实现一个Bloomfilter
简介如果你不知道什么是 Bloomfilter,可以在这里找到详尽的描述Bloomfilter 介绍。简单来说Bloomfilter是一个概率数据结构,功能上类似于集合的一个子集,可以向里面添加一个元素,或者判断一个元素是否在其中。不过你只能准确判断一个数据不在其中,对于那些Bloomfilter判定在其中的元素,只能保证它有非常大的概率在其中(这个概率一般高达99.9%+)。原创 2017-06-09 23:10:38 · 6263 阅读 · 0 评论 -
使用Sphinx为你的python模块自动生成文档
Sphinx是一个可以用于Python的自动文档生成工具,可以自动的把docstring转换为文档,并支持多种输出格式包括html,latex,pdf等。安装 pip install sphinx原创 2017-06-23 15:04:10 · 22018 阅读 · 0 评论 -
在Python中使用mock模块进行单元测试
在进行单元测试时,有些模块对别的模块有依赖关系,但是这个模块在我们的控制之外,比如你要发一个HTTP请求,在这种情况下需 要用Mock对象来进行模拟。在Python当中,mock库提供了这个功能。原创 2016-11-21 17:47:11 · 9681 阅读 · 0 评论 -
Python 协程 - 1
在协程之前我们有什么?协程实际上不是一个新概念,作为一个并发模型,在很早以前就能看到协程的身影。只是最近才开始变得火热起来,因为它可以很好的处理IO密集型任务,而这符合互联网行业的业务需求。原创 2017-05-10 22:03:47 · 408 阅读 · 0 评论 -
Python 2.x 字符编码问题
ASCII,Unicode,UTF-8 和 UTF-16ASCII是一种我们最为熟悉的编码方式,从大一入学学C语言的时候就学过。那么到底什么是编码呢?我们知道数据实际上是以二进制的形式存储的,而我们人类可读的却是特定形式的字符(如’a’,’b’,’c’),而编码就是这样一种映射关系,它把每一个字符映射为一个二进制数,使得我们可以将数据存到内存或磁盘里。原创 2017-04-15 20:03:08 · 632 阅读 · 0 评论 -
使用 Python 标准库进行性能测试
Profile 和 cProfile在 Python 标准库里面有两个模块可以用来做性能测试。 1. 一个是 Profile,它是一个纯 Python 的实现,所以会慢一些,如果你需要对模块进行拓展,那么这个模块比较合适。 2. 第二个是 cProfile,从名字就可以看出这是一个 C 语言的实现版,官方推荐在大多数情况下使用。原创 2017-03-26 15:11:26 · 2090 阅读 · 0 评论 -
LeetCode 第50题 Pow(x, n) [log(n)]
问题描述:计算 pow(x, n),也就是计算 x 的 n次方。算法思路:首先来考虑 n 的二进制表示,比如,n 的二进制形式为 ‘10001011’,那么 x^n=x^(1+2+8+128)=x^1*x^2*x^8*x^128,也就是说 x^n 可以拆成几个数的乘积。原创 2017-03-06 20:41:55 · 390 阅读 · 0 评论 -
Python 爬虫教程 4 - 网页的构成
网页如何呈现到用户面前?在我们浏览各种网站的时候,浏览器呈现的都是图文并茂的页面,其中不少还有动态的动画效果。 那么一个网页是如何从服务器端传输到客户端并展现在你的电脑上的呢?大致有如下几步:原创 2017-02-25 20:54:27 · 406 阅读 · 0 评论 -
Celery 学习笔记(2)- 定时任务
周期任务Celery 中启动定时任务有两种方式,(1)在配置文件中指定;(2)在程序中指定原创 2017-01-07 13:11:46 · 16152 阅读 · 0 评论 -
Celery 学习笔记(1)简介
简介Celery 是一个用 Python 编写的异步的任务调度模块,它有着简明的 API,并且有丰富的扩展性,适合用于构建分布式的 Web 服务。Celery 的工作流程很简单,你可以给Celery提交一个任务,然后 Celery 会将任务放入消息队列 broker 中,后台启动的多 个 worker 并行的对任务进行执行,最后可以选择将执行结果写入 store 中。原创 2017-01-05 15:08:31 · 1807 阅读 · 0 评论 -
Python 爬虫教程 3 - 使用 requests
什么是 requests简单的来讲 requests 是一个简单易用的 HTTP 客户端程序,由 Python 社区大牛 Kenneth 发起。所以 requests 到底是干什么的呢?原创 2017-02-10 11:42:29 · 684 阅读 · 0 评论 -
Python 爬虫教程 1 - 前言
互联网每天都会产生大量的数据,但是互联网产生的数据大都是非结构化的数据,无法直接用于分析产生价值,所以需要对这样一些网页里的数据进行抓取,得到有价值的结构化数据。而网络爬虫就是这样一种用于抓取网页的程序。实际上我们常用的百度,谷歌等搜索引擎就是功能强大的爬虫。原创 2017-01-17 20:41:14 · 505 阅读 · 0 评论 -
Python 爬虫教程 2 - HTTP协议
什么是 HTTPHTTP是一种应用层协议,是一种在网络中进行数据传输时,收发双方提前达成的某些共同约定,HTTP 协议涵盖的内容极广,而这里我们主要关注 HTTP 在报文格式上的约定。首先会对如何对 HTTP 中资源进行定位,然后介绍下 HTTP 报文结构,接下来介绍下 HTTP 的请求和响应,最后给出一个示例。原创 2017-02-09 16:56:52 · 714 阅读 · 0 评论 -
Celery 学习笔记(4)- Workflow
Signature 对象前面介绍了可以通过 delay 和 apply_async 来执行一个任务,多数情况下这已经足够使用,但是有时候你希望能够将任务及其参数传递给其它函数时,现有的方法就不够用了。 在 Celery 中,提供了 signature 方法将函数和参数打包起来成为一个 signature 对象,在这个对象中可以保存函数的参数以及任务执行的参数。原创 2017-01-10 13:37:36 · 11792 阅读 · 2 评论 -
Celery 学习笔记(3)- 任务和任务执行
任务任务是 Celery 里不可缺少的一部分,它可以是任何可调用对象。每一个任务通过一个唯一的名称进行标识, worker 通过这个名称对任务进行检索。任务可以通过 app.task 装饰器进行注册,需要注意的一点是,当函数有多个装饰器时,为了保证 Celery 的正常运行,app.task 装饰器需要在最外层。原创 2017-01-09 14:45:10 · 14534 阅读 · 0 评论