python
文章平均质量分 78
zhumawinnner
这个作者很懒,什么都没留下…
展开
-
decorator_python装饰器
注意:解决缩进问题用tab键(不用空格)写出一个@log的decorator,使它既支持:@logdef f(): pass又支持:@log('execute')def f(): pass解析:@log形式,相当于调用:fn = log(fn)@log('arg')形式,相当于调用:fn = log('arg')(fn)使用函数原创 2015-05-13 22:42:34 · 709 阅读 · 1 评论 -
python GUI编程
参考资料:1.官方文档:docs2.Python GUI编程(Tkinter)在编写python GUI程序前,需要决定使用哪个GUI平台。所谓平台,就是图形组件的一个特定集合,可以通过 GUI工具包(一些python模块)进行访问。 平台是食材,能吃但是我们不能直接吃,而GUI工具包就像炊具,操作炊具,搞定食材,天经地义。常用的 GUI工具包有很多,python自带T原创 2015-05-21 13:49:09 · 1051 阅读 · 0 评论 -
day2 - 编写数据库模块
···关键字参数【**kw本身就是dict类型的参数】,见下图:··· 包装函数(访问限制)属性是函数class Student(object): def __getattr__(self, attr): if attr=='age': return lambda: 25调用:原创 2015-06-01 23:13:09 · 777 阅读 · 0 评论 -
python __name__的含义
python 中__name__ = '__main__' 有句话经典的概括了这段代码的意义:“Make a script both importable and executable”。意思就是说让你写的脚本模块既可以导入到别的模块中用,另外该模块自己也可执行。下面举例说明。先写一个模块:#module.pydef main(): print "we are in %s"转载 2015-06-02 15:46:37 · 1090 阅读 · 0 评论 -
MetaClass 与 ORM
···MetaClassMetaClass翻译过来就是元类,什么叫元?元者,源也,根也,本也!所谓元类就是能够创造出其他类的类,即原始类。原创 2015-06-01 23:16:20 · 1460 阅读 · 0 评论 -
day3 - 编写ORM
···@classmethod一般来说,要使用某个类的方法,需要先实例化一个对象再调用方法,而使用@staticmethod或@classmethod,就可以不需要实例化,直接类名.方法名()来调用。既然@staticmethod和@classmethod都可以直接类名.方法名()来调用,那他们有什么区别呢?从它们的使用上来看,@staticmethod不需要表示自身对象的se原创 2015-06-03 16:40:31 · 889 阅读 · 0 评论 -
SMTP&POP3编程
一、补充知识Unicode编码转换为 utf-8 编码把Unicode编码的u'xxx'转换为UTF-8编码的'xxx'可用encode('utf-8')方法:>>> u'ABC'.encode('utf-8')'ABC'>>> u'中文'.encode('utf-8')'\xe4\xb8\xad\xe6\x96\x87'二、基础知识电子邮件收发流程:原创 2015-05-22 15:40:28 · 2811 阅读 · 0 评论 -
python分布式进程模型
分布式进程:Process进程分布到多台机器上Python的multiprocessing模块不但支持多进程,其中managers子模块还支持把多进程分布到多台机器上。可以写一个服务进程作为调度者,将任务分布到其他多个进程中,依靠网络通信进行管理。另外值得注意的是,manager和worker两端创建的实例是相关的,即worker的实例,通过验证码和网络IP地址连接到m原创 2015-05-20 00:53:11 · 2860 阅读 · 0 评论 -
序列化:json.dumps & json.loads
命令行交互模式:文本编辑模式:# -*- coding:utf-8 -*-import jsonclass Student(object): def __init__(self, name, age, score): self.name = name self.age = age self.score = sc原创 2015-05-18 19:52:42 · 1260 阅读 · 0 评论 -
flask源码剖析之上下文全局变量
flask有四个线程级的全局变量,两个是程序上下文变量:current_app和g,两外两个是请求上下文变量:request和session.这四个变量只有从flask.globals中导入才可以使用,即from flask import current_appfrom flask import gfrom flask import requestfro原创 2015-07-03 13:20:48 · 4014 阅读 · 0 评论 -
python进程和线程
一、单进程from multiprocessing import Processimport osdef run_proc(name): print 'the %s process id is %d.' %(name,os.getpid()) if __name__=='__main__': print 'the parent process id is %d.' %os.get转载 2015-05-18 23:09:07 · 635 阅读 · 0 评论 -
super继承和普通父类继承
当存在继承关系的时候,有时候需要在子类中调用父类的方法,此时最简单的方法是把对象调用转换成类调用,需要注意的是这时self参数需要显式传递,例如:class FooParent(object): def bar(self, message): print messageclass FooChild(FooParent): def bar(self, message): FooP原创 2015-05-17 19:50:52 · 1912 阅读 · 2 评论 -
python闭包
# -*- coding:utf-8 -*-def count(): fs = [] for i in range(1, 4): def f(i): return i*i fs.append(f(i)) return fsf1, f2, f3 = count()print f1,f2,f3#测试一下原创 2015-05-13 16:45:02 · 386 阅读 · 0 评论 -
base64
Base64:一种最常见的二进制到字符串的转换(编码)方法首先建立一个由64个字符组成的数组(表),6个二进制位可以正好完全索引这64个字符(0~63)每3个字节的二进制数据对应4个字符,其对应关系由查表所得所以,Base64编码会把3字节的二进制数据编码为4字节的文本数据(字符),这些文本数据可以在邮件、网页直接显示有意思的是,如果要编码的二进制数据字节数不是3的倍数,最后会剩下原创 2015-05-20 19:22:10 · 415 阅读 · 0 评论 -
itertools
如果只是创建了一个迭代对象(实例),它不会事先把无限个元素生成出来,事实上也不可能在内存中创建无限多个元素。无限序列只有在for迭代时才会无限地迭代下去,例如>>> import itertools>>> natuals = itertools.count(1) #创建迭代对象,但并未生成实际的元素>>> for n in natuals:... print n...转载 2015-05-20 19:34:16 · 810 阅读 · 0 评论 -
python单元测试(自动化测试)
python内置的dict有如下功能:d=dict(a=1)print d也能用d['a']访问a的value,我想拓展dict的功能,使其能使用d.a访问a的value代码如下:# -*- coding:utf-8 -*-class Dict(dict): def __init__(self, **kw): super(Dict, self原创 2015-05-17 23:38:25 · 1484 阅读 · 0 评论 -
TCP&UDP编程
补充知识:字符串的join和split一、TCP每打开(创建)一个Socket就表示“打开了一个网络链接”,而打开一个Socket需要知道目标计算机的IP地址和端口号,再指定协议类型即可。Python的接口是对Unix系统调用与Socket函数的库接口函数的直译,非常易于上手,例如:函数socket()返回一个 socket object 套接字对象,通过作为方法来调用这个对象就可原创 2015-05-21 19:24:21 · 695 阅读 · 0 评论 -
python PIL
要特别注意我们的操作对象是什么1.import Imagef = Image.open('test.jpg') #获得图像文件print f.format, f.size, f.mode #获得图像文件的信息2.import Imagef = Image.open('test.jpg')print f.format, f.size, f.mode#下面是对图像文原创 2015-05-21 13:29:23 · 709 阅读 · 0 评论 -
Web框架
基础知识datetime strftime函数:@decorator原理分析:所谓返回值就是值函数的执行结果# -*- coding:utf-8 -*-import functoolsdef log(path): def wrapper(func): func.__bbbb__ = path return func #原创 2015-06-08 15:59:56 · 1304 阅读 · 0 评论 -
WSGI接口
所谓WSGI接口就是用户自定义的函数,以实现生成HTML文档作为HTTP请求的响应Body。用户自定义处理函数:# -*- coding:utf-8 -*-'''用户自主编写的方法,专注于生成HTML文档作为HTTP请求的响应BodyHTTP响应的Body==HTML文档(服务器响应浏览器请求)底层代码(接受HTTP请求、解析HTTP请求、发送HTTP响应)不需要我们自己编写,我原创 2015-05-26 21:05:33 · 520 阅读 · 0 评论 -
web框架之cgi.FieldStorage()与数据提交
POST 一般用来向服务端提交数据,HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范。规范把 HTTP 请求分为三个部分:状态行、请求头、消息主体。 协议规定 POST 提交的数据必须放在消息主体(entity-body)中,但协议并没有规定数据必须使用什么编码方式。实际上,开发者完全可以自己决定消息主体的格式,只要最后发送的 HTTP 请求满足上面的原创 2015-06-17 22:59:37 · 11837 阅读 · 0 评论 -
XML和HTML解析
所谓的解析,实质就是在一段XML或HTML代码中提取我们想要的信息,方法是XML或HTML它们都有自己的标识——开始、结束还是数据。利用python提供的解析器可以根据这些标识,利用相应的函数(方法)提取出信息,有点正则表达式的味道!一、XMLPython中使用SAX解析XML非常简洁,SAX 是XML 的简单 API。基于事件的语法分析器将(分析出来的)事件发送给应用程序。这原创 2015-05-20 23:32:08 · 1931 阅读 · 0 评论 -
mysql安装、数据库、ORM
python如何操作数据库(如SQLite、MySQL)?SQLiteSQLite的驱动内置在Python标准库中,所以我们可以直接来操作SQLite数据库。使用Python的DB-API时,只要搞清楚Connection和Cursor对象,打开后一定记得关闭,就可以放心地使用。使用Cursor对象执行insert,update,delete语句时,执行结果由 ro原创 2015-06-01 21:36:03 · 919 阅读 · 0 评论