Python
文章平均质量分 88
peersli
这个作者很懒,什么都没留下…
展开
-
python单元模块测试
单元模块测试如果你听说过“测试驱动开发”(TDD:Test-Driven Development),单元测试就不陌生。单元测试是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作。比如对函数abs(),我们可以编写出以下几个测试用例:输入正数,比如1、1.2、0.99,期待返回值与输入相同;输入负数,比如-1、-1.2、-0.99,期待转载 2017-08-10 14:28:58 · 361 阅读 · 1 评论 -
python 实现GUI(图形用户界面)编程
Python支持多种图形界面的第三方库,包括:wxWidgetsQtGTKTkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本原创 2017-09-13 21:20:37 · 128324 阅读 · 7 评论 -
进程与线程的一个简单解释
作者: 阮一峰日期: 2013年4月24日进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。1.计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2.假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候,其他车间都必须停工。背后的含义就是转载 2017-09-06 21:28:15 · 295 阅读 · 0 评论 -
python 特殊方法之__call__()
__call__在Python中,函数其实是一个对象:>>> f = abs>>> f.__name__'abs'>>> f(-123)123由于 f 可以被调用,所以,f 被称为可调用对象。所有的函数都是可调用对象。一个类实例也可以变成一个可调用对象,只需要实现一个特殊方法__call__()。我们把 Person 类变成一个可调用对象:class Person(原创 2017-08-29 15:09:15 · 4116 阅读 · 1 评论 -
Python中的多线程及其基本使用方法
学习Python的多线程(Multi-threading),至少应该要有进程与线程的基本概念,可以看我转载的一篇文章:《进程与线程的一个简单解释》。1.Python中的多线程 执行一个程序,即在操作系统中开启了一个进程,在某一时刻,一个CPU内核只能进行一个进程的任务,现在的计算机所说的多进程/多任务其实是通过加快CPU的执行速度来实现的,因为一个CPU每秒能执行上亿次的原创 2017-09-07 12:11:52 · 3024 阅读 · 0 评论 -
Python多线程锁例子
/mnt/hgfs/Python/day6$ time python thread_clock6.py | grep 'real' (文件名+grep命令)可以看一下执行完一个程序所花的时间在多线程程序执行过程中,为什么需要给一些线程加锁以及如何加锁,下面就来说一说。1.给线程加锁的原因 我们知道,不同进程之间的内存空间数据是不能够共享的,试想一下原创 2017-09-07 15:53:33 · 477 阅读 · 2 评论 -
python用于实现多线程异步交互之生产者消费者模型
虽然标题是“生产者消费者模型实现多线程异步交互”,但这里要说的应该还包括Python的消息队列,因为这里多线程异步交互是通过Python的消息队列来实现的,因此主要内容如下:12341.生产者消费者模型:厨师做包子与顾客吃包子2.Python的消息队列3.利用消息队列实现Python多线程异步交互原创 2017-09-07 17:06:30 · 2034 阅读 · 0 评论 -
python的web 开发基础之url处理
以下是阅读python核心编程web 开发后的心得笔记1 统一资源定位符 URL(Uniform Resource Locator,统一资源定位符),它是一个Web地址,用来定位一个文档,或者调用CGI程序来为客户端产生一个文档。 URI(Uniform Resource Identifier,统一资源标识) URN(Uniform Res原创 2017-09-24 22:47:18 · 678 阅读 · 1 评论 -
一个简单的Web客户端(网络爬虫)
本节演示网络爬虫。它是按照一定的规则,自动地抓取万维网信息的程序或者脚本。 在本节的演示程序中,抓取Web的开始页面地址,下载与开始页面相同域名的后续链接页面。实现代码:[python] view plain copy#-*-coding: utf-8-*- from sys import argv原创 2017-09-26 15:26:15 · 1842 阅读 · 0 评论 -
lambda表达式与eval(str)函数
lambda的一般形式是关键字lambda后面跟一个或多个参数,紧跟一个冒号,以后是一个表达式。lambda是一个表达式而不是一个语句。它能够出现在Python语法不允许def出现的地方。作为表达式,lambda返回一个值(即一个新的函数)。lambda用来编写简单的函数,而def用来处理更强大的任务。[python] view plain copy原创 2017-09-11 15:53:42 · 1447 阅读 · 1 评论 -
python 实现多线程编程
就个人而言,学了这么多年的课程又写了这么多年的程序,虽然没有涉及到企业级的项目,但还是体会到了有几个知识点是非常重要的,包括:面向对象的思想、如何架构一个项目、设计模式来具体解决问题、应用机器学习和深度学习的方法,当然也包括我这篇文章的内容——多线程和并行化处理数据。 这篇文章主要是参考Wesley J. Chun的《Python核心编程(第二版)》书籍多线程部分,并结合我以前的一些转载 2017-08-27 19:03:11 · 13928 阅读 · 1 评论 -
python实现多任务编程
锁的好处就是确保了某段关键代码只能由一个线程从头到尾完整地执行,坏处当然也很多,首先是阻止了多线程并发执行,包含锁的某段代码实际上只能以单线程模式执行,效率就大大地下降了。其次,由于可以存在多个锁,不同的线程持有不同的锁,并试图获取对方持有的锁时,可能会造成死锁,导致多个线程全部挂起,既不能执行,也无法结束,只能靠操作系统强制终止。启动与CPU核心数量相同的N个线程,在4核CPU上可以监控到C原创 2017-08-25 17:19:28 · 2186 阅读 · 0 评论 -
python实现电子邮件编程
一、几个专业名词:MUA 、MTA、MDA假设我们自己的电子邮件地址是me@163.com,对方的电子邮件地址是friend@sina.com(注意地址都是虚构的哈),现在我们用Outlook或者Foxmail之类的软件写好邮件,填上对方的Email地址,点“发送”,电子邮件就发出去了。这些电子邮件软件被称为MUA:Mail User Agent——邮件用户代理。Email从M原创 2017-08-18 17:39:08 · 38562 阅读 · 1 评论 -
python基础之函数篇
ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符原创 2017-08-06 01:08:00 · 753 阅读 · 1 评论 -
python的上下文管理和with语句详解
http://blog.csdn.net/pipisorry/article/details/50444736with语句with语句是从 Python 2.5 开始引入的一种与异常处理相关的功能(2.5 版本中要通过 from __future__ import with_statement 导入后才可以使用),从 2.6 版本开始缺省可用(参考 What’s new in python 2.6?转载 2017-08-11 20:21:53 · 1709 阅读 · 1 评论 -
正则表达式和python结合
常见正则表达式符号和特殊符号表记号说明实例literal匹配字符串的值abcre1|re2匹配正则表达式re1或re2abc|123.(dot)匹配任何字符,换行符除外 (但编译标记[S或DOTALL能推翻这个限制])a.a^匹配字符串的开原创 2017-08-11 00:45:42 · 1407 阅读 · 1 评论 -
I/O函数用法实例
print('hello, world')print('The quick brown fox', 'jumps over', 'the lazy dog')print(100 + 200)name = input() print('hello,', name) ###name为变量,print('hello,', name) 实际上等于 print('hello,')+原创 2017-08-06 00:30:15 · 229 阅读 · 0 评论 -
基于python的网络编程
网络编程就是如何在程序中实现两台计算机的通信。更确切地说,网络通信是两台计算机上的两个进程之间的通信。比如,浏览器进程和新浪服务器上的某个Web服务进程在通信,而QQ进程是和腾讯的某个服务器上的某个进程在通信。网络编程对所有开发语言都是一样的,Python也不例外。用Python进行网络编程,就是在Python程序本身这个进程内,连接别的服务器进程的通信端口进行通信。一、###########原创 2017-08-12 14:36:40 · 605 阅读 · 1 评论 -
python中模块导入语句 from ..import ..与from import as的区别
from...import如 from A import b,相当于import Ab=A.b再如:"from t2 import var1" 相当于:import t2var1= t2.var1在此过程中有一个隐含的赋值的过程import......asimport A as B,给予A库一个B的别称,帮助记忆原创 2017-08-13 22:13:20 · 18602 阅读 · 4 评论 -
python 网络编程之socketserver模块
前言:(以下是基于我学习完python核心编程之网络编程篇章的个人知识输出,知识不算齐全,想深入的可自己再查阅书籍)虽说用Python编写简单的网络程序很方便,但复杂一点的网络程序还是用现成的框架比较好。这样就可以专心事务逻辑,而不是套接字的各种细节。SocketServer模块简化了编写网络服务程序的任务。同时SocketServer模块也是Python标准库中很多服务器框架的基础。原创 2017-08-13 23:03:13 · 552 阅读 · 0 评论 -
python实现网络编程 之Twisted框架
原文链接:http://www.aosabook.org/en/twisted.html作者:Jessica McKellarTwisted是用Python实现的基于事件驱动的网络引擎框架。Twisted诞生于2000年初,在当时的网络游戏开发者看来,无论他们使用哪种语言,手中都鲜有可兼顾扩展性及跨平台的网络库。Twisted的作者试图在当时现有的环境下开发游戏,这一步走的非常艰难,他们迫切地需转载 2017-08-13 23:55:23 · 5428 阅读 · 1 评论 -
搭建Twisted Reactor TCP 服务器与客户端(文末有福利)
Twisted是用Python实现的基于事件驱动的网络引擎框架。原创 2017-08-14 01:37:16 · 4264 阅读 · 4 评论 -
ftp
文件传输协议 FTPFTP主要用于匿名下载公共文件,也可以用于在两台计算机之间传输文件。当匿名用户登录时,匿名用户的用户名是“anonymous”,密码一般是用户的电子邮件地址。FTP工作流程: 1、客户端连接远程主机上的FTP服务器。 2、客户端输入用户名和密码(或“anonymous”和电子邮件地址)。 3、客户端进行各种文件传输和信息查询操作。 4、客原创 2017-08-15 17:48:55 · 425 阅读 · 0 评论 -
扩展python
22.1.1 什么是扩展 扩展:所有能被整合或导入到其他python脚本的代码,都可以称为扩展。e.g. 纯python、C/C++、Java、C#或Visual Basic.NET都可以 22.1.2 为什么要扩展python添加/额外的(非python)功能性能瓶颈的效率提升——把软件开发过程中的瓶颈部分在扩展中实现保持专有源代码原创 2017-09-19 20:20:02 · 834 阅读 · 0 评论