您现在的位置:首页
--> the5fire的技术博客
在计算机科学中,闭包(Closure)是词法闭包(Lexical Closure)的简称,是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。所以,有另一种说法认为闭包是由函数和与其相关的引用环境组合而成的实体。闭包在运行时可以有多个实例,不同的引用环境和相同的函数组合可以产生不同的实例。
Supervisor是一个多进程管理工具,在python生产环境中使用很频繁。它是由python实现的,在github上可以找到它的源码。
Django数据库访问优化
ack诞生的目的就是要取代grep,从作者开发的初衷以及它官网的名字,另外它还有一个“可以替代99%grep的工作”这个口号。
这是在公司做的一个分享,目的是帮助新手快速的配置好python开发环境。在操作之前,建议先把你自己的vim配置文件(vimrc)和.vim文件夹先剪切到一个备份文件中。
最近我们团队开展了一系列的15分钟linux培训计划,今天给大家分享了下find命令的使用,不过内容有点少了。这里把能用到的命令都列一下,也方便以后查找使用。
前几天熊总为了让我们能够方便的使用google搜索,给我们几个人发了个福利——foolssh的翻墙帐号。于是我们开始欣赏墙外的风景。最近没事也到twitter上看看那些牛人都在干啥,比如说python的作者,trello的创始人。墙外的风景确实不错。以前也用过一些免费的翻墙帐号,可惜质量得不到保证。
那还是我刚毕业时候的事,在移动的机房里,抵抗着夏天机房内的超低温,看着一个资深的攻城师舞动的手指在键盘上不断的敲打着命令。没错,你猜对了,他在用shell和vim调试程序。那时我对linux命令不算很熟悉,除了他敲的cd .. 和cd ../..是什么意思,其他的都不太清楚,因此在之后我对linux产生了极大的兴趣,我唯一的想法就是能够像他那样不假思索的敲出cd .. cd ../../..
先来说下场景,需要写一个爬虫,定时从某个接口地址获取数据,然后存入本地数据库。因此就需要一个可定时执行的东西,于是,请教了同事。知道在ubuntu中,准确的说是在linux中,有这么东西——crontab,专门用来定制执行任务。简单解说一番,就会用了。
OpenerDirector是怎么把这些handler分类的?
上篇文章说到,在build_opener中只是调用了OpenerDirector的add_handler方法,并不是直接操作的属性来完成handler的添加的。那么来看看OpenerDirector.add_handler具体做了些什么工作。
这个函数的作用其实很简单,就是传进来的Handler进行分类。既然是分类那就要有分类的依据了,那么分类的依据是什么呢?
在程序第一次执行urlopen操作的时候,其实就是构建了一个全局的_opener对象,然后用这个_opener对象来处理url以及data。这样做的好处就是如果你在程序中要多次调用urlopen,就不会频繁构建opener对象了。当然这个opener也不是一次加载就再也不可变了,urllib2提供了install_opener这个方法,你可以在客户端调用build_opener然后用前面的那个install_opener来加载。
开始有读urllib2源码的这个想法是在某个午饭后的时光,刷了会微博发现:与其无聊的刷微博,不如找点源码读,想了想,就找到urllib2。
原因是urllib2这个模块是从一开始写python到很久以后都会用到的东西,我想大多数人都会有这样的感觉,因为它很好用,而且python也会经常用来写爬虫。使用频率这么高的东西,自然要把它彻底掌握才好。
这段时间有空就会看看urllib2的源码,里面可以学习的东西还真不少,也有些值的借鉴的思想,比如关于一系列handler处理的操作。另外里面还用了个设计模式,应该是command模式。这些东西以后慢慢分析。
[ 共12篇文章 ][ 第1页/共1页 ][ 1 ]
近3天十大热文
- [51] Oracle MTS模式下 进程地址与会话信
- [49] 图书馆的世界纪录
- [49] IOS安全–浅谈关于IOS加固的几种方法
- [49] 如何拿下简短的域名
- [45] android 开发入门
- [44] 【社会化设计】自我(self)部分――欢迎区
- [42] 界面设计速成
- [42] 读书笔记-壹百度:百度十年千倍的29条法则
- [41] 视觉调整-设计师 vs. 逻辑
- [40] Go Reflect 性能
赞助商广告