—*—Python提升—*—
文章平均质量分 75
Lateautunmxxxxx
人生有幸得一信仰:Kobe Byrant
人生有幸得一偶像:Kim Taeyeon
人生有幸学一语言:Python
展开
-
python多线程编程(6): 队列同步
前面介绍了互斥锁和条件变量解决线程间的同步问题,并使用条件变量同步机制解决了生产者与消费者问题。让我们考虑更复杂的一种场景:产品是各不相同的。这时只记录一个数量就不够了,还需要记录每个产品的细节。很容易想到需要用一个容器将这些产品记录下来。Python的Queue模块中提供了同步的、线程安全的队列类,包括FIFO(先入先出)队列Queue,LIFO(后入先出)队列LifoQueue,和优先转载 2016-12-19 10:47:57 · 181 阅读 · 0 评论 -
Python函数式编程指南(四):生成器
4. 生成器(generator)4.1. 生成器简介首先请确信,生成器就是一种迭代器。生成器拥有next方法并且行为与迭代器完全相同,这意味着生成器也可以用于Python的for循环中。另外,对于生成器的特殊语法支持使得编写一个生成器比自定义一个常规的迭代器要简单不少,所以生成器也是最常用到的特性之一。从Python 2.5开始,[PEP 342:通过增强生成器实现协同程序]的实现为转载 2016-09-05 17:44:30 · 264 阅读 · 0 评论 -
Python函数式编程指南(三):迭代器
3. 迭代器 3.1. 迭代器(Iterator)概述 迭代器是访问集合内元素的一种方式。迭代器对象从集合的第一个元素开始访问,直到所有的元素都被访问一遍后结束。 迭代器不能回退,只能往前进行迭代。这并不是什么很大的缺点,因为人们几乎不需要在迭代途中进行回退操作。 迭代器也不是线程安全的,在多线程环境中对可变集合使用迭代器是一个危险的操作。但如果小心谨慎,或者干脆贯彻函数式思想坚持转载 2016-09-05 17:44:07 · 167 阅读 · 0 评论 -
Python函数式编程指南(二):函数
2. 从函数开始 2.1. 定义一个函数 如下定义了一个求和函数:12def add(x, y): returnx + y关于参数和返回值的语法细节可以参考其他文档,这里就略过了。 使用lambda可以定义简单的单行匿名函数。lambda的语法是: 1转载 2016-09-05 17:43:40 · 207 阅读 · 0 评论 -
Python函数式编程指南(一):概述
1. 函数式编程概述 1.1. 什么是函数式编程? 函数式编程使用一系列的函数解决问题。函数仅接受输入并产生输出,不包含任何能影响产生输出的内部状态。任何情况下,使用相同的参数调用函数始终能产生同样的结果。 在一个函数式的程序中,输入的数据“流过”一系列的函数,每一个函数根据它的输入产生输出。函数式风格避免编写有“边界效应”(side effects)的函数:修改内部状态,或者是其他无转载 2016-09-05 17:42:50 · 153 阅读 · 0 评论 -
Python 爬虫的工具列表
这个列表包含与网页抓取和数据处理的Python库网络通用urllib -网络库(stdlib)。requests -网络库。grab – 网络库(基于pycurl)。pycurl – 网络库(绑定libcurl)。urllib3 – Python HTTP库,安全连接池、支持文件post、可用性高。httplib2 – 网络库。RoboBrowser – 一个简单的、极具Pyt转载 2016-08-08 17:14:31 · 282 阅读 · 0 评论 -
一个爬虫的实现
#有点感觉,写一个简单的豆瓣爬虫#!/usr/bin/python#coning=utf-8#导入所需要的库#负责爬网页代码的库import urllib2import urllibimport os#负责用来匹配寻找资源的库from Beautifulsoup import Beautifulsoup#开始定义方法def getAllImageLink原创 2016-08-08 17:13:17 · 352 阅读 · 0 评论 -
Python面试必备金典,还说你会python?
Skip to contentThis repositoryPull requestsIssuesGistTable of ContentsPython语言特性1 Python的函数参数传递2 Python中的元类(metaclass)3 @staticmethod和@c原创 2016-12-22 15:08:05 · 804 阅读 · 1 评论 -
Pycharm Python头文件模版
# -*- coding: utf-8 -*-"""------------------------------------------------- File Name: ${NAME} Description : Author : ${USER} date: ${DATE}----------------------------------...原创 2018-04-20 01:12:43 · 1911 阅读 · 0 评论 -
python-patterns:使用python实现设计模式
python-patterns是使用Python实现设计模式的集合。设计模式(Design Patterns)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。通过这个项目,可以让Python程序员很好地熟悉设计模式。目前项目中已经实现的设计模式有:3-tier: 三层架构abstract_fact转载 2016-10-31 15:50:13 · 1373 阅读 · 0 评论 -
python多线程编程(8):线程的合并和后台线程
本文转载自:http://www.cnblogs.com/holbrook/archive/2012/03/21/2410120.html线程的合并Python的Thread类中还提供了join()方法,使得一个线程可以等待另一个线程执行结束后再继续运行。这个方法还可以设定一个timeout参数,避免无休止的等待。因为两个线程顺序完成,看起来象一个线程,所以称为线程的合并。一个例子转载 2016-12-19 10:50:12 · 259 阅读 · 0 评论 -
python多线程编程(7):线程间通信
python多线程编程(7):线程间通信转载 2016-12-19 10:49:31 · 300 阅读 · 0 评论 -
python多线程编程(5): 条件变量同步
本文转载自:http://www.cnblogs.com/holbrook/archive/2012/03/13/2394811.html互斥锁是最简单的线程同步机制,Python提供的Condition对象提供了对复杂线程同步问题的支持。Condition被称为条件变量,除了提供与Lock类似的acquire和release方法外,还提供了wait和notify方法。线程首先acquire一转载 2016-12-19 10:43:10 · 231 阅读 · 0 评论 -
python多线程编程(4): 死锁和可重入锁
原文转载自:http://www.cnblogs.com/holbrook/archive/2012/03/08/2385449.html死锁在线程间共享多个资源的时候,如果两个线程分别占有一部分资源并且同时等待对方的资源,就会造成死锁。尽管死锁很少发生,但一旦发生就会造成应用的停止响应。下面看一个死锁的例子:# encoding: UTF-8import threadi转载 2016-12-19 10:28:20 · 291 阅读 · 0 评论 -
python多线程编程(3): 使用互斥锁同步线程
文转载自:http://www.cnblogs.com/holbrook/archive/2012/03/04/2378947.html问题的提出上一节的例子中,每个线程互相独立,相互之间没有任何关系。现在假设这样一个例子:有一个全局的计数num,每个线程获取这个全局的计数,根据num进行一些处理,然后将num加1。很容易写出这样的代码:# encoding: UTF-转载 2016-12-19 10:23:07 · 253 阅读 · 0 评论 -
python多线程编程(2): 线程的创建、启动、挂起和退出
原文转载自:http://www.cnblogs.com/holbrook/archive/2012/03/02/2376940.html如上一节,Python的threading.Thread类有一个run方法,用于定义线程的功能函数,可以在自己的线程类中覆盖该方法。也就是说,我们是在run()方法内,定义我们的线程来如何执行。而创建自己的线程实例后,通过Thread类的start方法,转载 2016-12-19 10:12:31 · 901 阅读 · 0 评论 -
python多线程编程(1): python对多线程的支持
原文转载自:http://www.cnblogs.com/holbrook/archive/2012/03/01/2376408.html前面介绍过多线程的基本概念,理解了这些基本概念,掌握Python多线程编程就比较容易了。在开始之前,首先要了解一下python对多线程的支持。虚拟机层面Python虚拟机使用GIL(Global Interpreter Lock,全局解释器锁转载 2016-12-19 10:04:40 · 235 阅读 · 0 评论 -
多线程的基本概念
本文转载自:http://www.cnblogs.com/holbrook/archive/2012/02/23/2365420.html本文最新版本已迁移至:http://thinkinside.tk/2012/02/23/multi_thread.html多线程编程必须理解的一些基本概念,适用于所有编程语言。内容:并发式编程多任务操作系统多线程vs多进程线程安全线转载 2016-12-19 09:56:46 · 242 阅读 · 0 评论 -
python中*args **kw到底是什么意思?
*args是非关键字参数,用于元组,**kw是关键字参数,用于字典def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ', kwargs print '---------------------------------------'if __name__ == '__main__'原创 2016-08-08 16:18:33 · 39576 阅读 · 1 评论 -
python网络编程基础-卷1-(1,8)章
第一章 客户/服务器网络介绍1、基于gopher协议的简单socket客户端程序2、增加错误修改3、增加文件类引用4、基本socket服务端程序5、高级模块gopherlib实现6、更高级模块urllib实现总结:利用python的socket模块实现编写网络程序第二章 网络客户端1、建立socket(分开两步)2、本地寻找端口号3、从socke原创 2016-12-20 16:08:56 · 360 阅读 · 0 评论