python
Ydoing
这个作者很懒,什么都没留下…
展开
-
python面向对象详解(上)
创建类Python 类使用 class 关键字来创建。简单的类的声明可以是关键字后紧跟类名:class ClassName(bases): 'class documentation string' #'类文档字符串' class_suite #类体实例化通过类名后跟一对圆括号实例化一个类 mc = MyClass() # instantiate class 初始化类‘int原创 2015-03-16 15:26:52 · 1402 阅读 · 0 评论 -
python高级函数map/reduce
Python内建了map()和reduce()函数。如果你读过Google的那篇大名鼎鼎的论文“MapReduce: Simplified Data Processing on Large Clusters”,你就能大概明白map/reduce的概念。我们先看map。map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的li转载 2015-04-06 16:00:16 · 530 阅读 · 0 评论 -
python装饰器简介
在了解装饰器的之前一定要先了解函数作为参数传递, 什么是函数内嵌,请参考我之前写的博客函数简介python装饰器思想有点类似设计模式的装饰模式, 其意图是动态地给函数对象添加额外的功能.比如像增加日志打印的功能,有点面向切面编程(AOP)的感觉.装饰器语法以@开头,接着后面跟着的是装饰器的名字和可选的参数.装饰器语法是一种语法糖. 格式如下@decomaker(deco_args) de原创 2015-03-11 17:15:13 · 702 阅读 · 0 评论 -
python生成器
通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环一原创 2015-03-11 17:04:54 · 831 阅读 · 0 评论 -
Python进程分支fork和exec详解
在python中,任务并发一种方式是通过进程分支来实现的.在linux系统在,通过fork()方法来实现进程分支. - fork()调用后会创建一个新的子进程,这个子进程是原父进程的副本.子进程可以独立父进程外运行. - fork()是一个很特殊的方法,一次调用,两次返回. - fork()它会返回2个值,一个值为0,表示在子进程返回;另外一个值为非0,表示在父进程中返回子进程ID.以下只能在原创 2015-04-07 10:52:52 · 3694 阅读 · 0 评论 -
Python匿名函数lambda
lambda是匿名函数,形式为lambda x : x * x等价于def func(x): return x * x其中”x”相当于函数参数, 表示式”x*x”相当于返回值,所以lambda不需要也不能有return.匿名函数本身是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数.匿名函数适用于编写简单的函数,因为不需要函数命令,不会造成函数名冲突.#!/usr/bin原创 2015-04-12 08:59:36 · 927 阅读 · 0 评论 -
python序列化pickle
什么叫做序列化?将内存中的对象转换为线性结构的字符串(有时也称字节流),以便存储或者传输.这种对象转换为字符串的行为通常叫做序列化.内存中的任意数据结构都可以映射为一个字符串.序列化函数签名#pickle.dump(obj, file[, protocol])首先尝试将table对象序列化写入文件dbase中,写入方式是字节形式:table = {'a' : [1, 2, 3], 'b' : ['s原创 2015-04-13 17:28:41 · 937 阅读 · 0 评论 -
Python之json模块
实际上JSON就是Python字典的字符串表示,但是字典作为一个复杂对象是无法直接传递,所以需要将其转换成字符串形式.转换的过程也是一种序列化过程.用json.dumps序列化为json字符串格式>>> import json>>> dic {'Connection': ['keep-alive'], 'Host': ['127.0.0.1:5000'], 'Cache-Control': ['m原创 2015-04-08 21:41:29 · 944 阅读 · 0 评论 -
git版本回退
查看日志$ git logcommit 81fe2587c1018b93d7016f69f52f532e903b780fAuthor: Jdoing <703627622@qq.com>Date: Mon Apr 13 21:31:47 2015 +0800 add some comment to readme.txt filecommit 28647342369fc48cde705原创 2015-04-14 17:30:59 · 1490 阅读 · 0 评论 -
Python进程间通信之匿名管道
匿名管道管道是一个单向通道,有点类似共享内存缓存.管道有两端,包括输入端和输出端.对于一个进程的而言,它只能看到管道一端,即要么是输入端要么是输出端.os.pipe()返回2个文件描述符(r, w),表示可读的和可写的.示例代码如下:#!/usr/bin/pythonimport timeimport osdef child(wpipe): print('hello from child原创 2015-04-09 10:26:11 · 3757 阅读 · 1 评论 -
Python之imp模块
imp.get_suffixes()返回3元组列表(suffix, mode, type), 获得特殊模块的描述.suffix为文件后缀名;mode为打开文件模式; type为文件类型, 1代表PY_SOURCE, 2代表PY_COMPILED, 3代表C_EXTENSION>>> imp.get_suffixes()[('.x86_64-linux-gnu.so', 'rb', 3), ('.s原创 2015-04-26 09:33:36 · 24075 阅读 · 0 评论 -
python创建字典多种方式
1.创建空字典>>> dic = {}>>> type(dic)<type 'dict'>2.直接赋值创建>>> dic = {'spam':1, 'egg':2, 'bar':3}>>> dic{'bar': 3, 'egg': 2, 'spam': 1}3.通过关键字dict和关键字参数创建>>> dic = dict(spam = 1, egg = 2, bar =3)>>> dic原创 2015-04-21 21:19:38 · 38081 阅读 · 2 评论 -
Python模块导入的多种方式
在python中, 模块即一个后缀名为”.py”文件,python用文件组织一个模块.模块导入遵循作用域原则, 在什么作用域导入就只能在当前作用域生效.一个模块只被加载一次,无论导入它多少次.from module import name 是把名字导入到当前的名称空间单行导入单个模块import json单行导入多个模块import os, sys, time导入指定的模块属性from os原创 2015-04-25 13:26:28 · 2011 阅读 · 0 评论 -
python正则表达式的简单使用
模块函数re.compile(pattern [, flag])把正则表达式预编译成正则表达式对象(模式对象),供以后使用.#模式对象,有re.compile()返回>>> pobj = re.compile('Hello,(.*)')>>> pobj<_sre.SRE_Pattern object at 0x7fb83dc9a530>re.match(pattern, string [,原创 2015-04-30 08:47:18 · 920 阅读 · 2 评论 -
python之globals()和locals()
global()返回全局作用域的属性字典, locals()返回局部作用域的属性字典.当locals()在模块顶层的位置时返回的值与global()相同.实例#!/usr/bin/python#coding=utf-8class Dog(object): x = 11 y = 12 def __init__(self): m = 44 n =原创 2015-04-26 11:41:49 · 2810 阅读 · 0 评论 -
python中利用tracekback跟踪栈以及打印异常信息
##sys.exc_info() 返回 (type, value, traceback). type为异常类型, value为异常的参数(通常为异常错误的信息), traceback为跟踪回溯的对象. exc_type, exc_value, exc_traceback = sys.exc_info() print "*** print sys.exc_info:" pri原创 2015-04-28 10:14:03 · 15971 阅读 · 0 评论 -
Jython入门学习
Jython是Python和Java的结合。Jython语法和Python一样,不但可以使用Python的库,而且还可以调用Java的库。结合了Python和Java的优点,也就是说Jython既有动态语言的灵活性,又可以用静态语言的强大的类库。其实,我理解 Jython 说简单一些,就是用 Java 语言实现的 Python 解释器,这种关系也就意味着你可以用 Python 语言编写程序而同时使用原创 2015-07-28 16:19:22 · 6424 阅读 · 0 评论 -
Python遍历目录的多种方式
1.os.popen运行shell列表命令def traverseDirByShell(path): for f in os.popen('ls ' + path): print f.strip()2.利用glob模块glob.glob(path)返回带目录的文件名.通配符和shell相似.path不能包含shell变量.def traverseDirByGlob(path)原创 2015-04-05 10:59:40 · 1541 阅读 · 0 评论 -
python中multiprocessing模块之Pipe管道
multiprocessing.Pipe([duplex]) 返回2个连接对象(conn1, conn2),代表管道的两端,默认是双向通信.如果duplex=False,conn1只能用来接收消息,conn2只能用来发送消息.不同于os.open之处在于os.pipe()返回2个文件描述符(r, w),表示可读的和可写的实例如下:#!/usr/bin/python#coding=utf-8im原创 2015-04-10 09:56:28 · 10973 阅读 · 1 评论 -
python之httplib模块
http模块是一个底层基础模块,实现的功能比较少,正常情况下比较少用到.推荐用urllib, urllib2, httplib2. HTTPConnection 对象class httplib.HTTPConnection(host[, port[, strict[, timeout[, source_address]]]]) 创建HTTPConnection对象HTTPConnection.原创 2015-04-10 17:56:51 · 1890 阅读 · 0 评论 -
Python异常处理
python异常处理机制和java类似,采用try-except-finally的结构.try-except检测异常格式“` try: try_statement except (ErrorType1, ErrorType2),e: handle_statement finally: finally_statement实例!/usr/bin/pythontry:原创 2015-03-16 10:06:12 · 705 阅读 · 0 评论 -
Python单元测试框架unittest
概述1.测试脚手架(test fixture)测试准备前要做的工作和测试执行完后要做的工作.包括setUp()和tearDown().2.测试案例(test case)最小的测试单元.3.测试套件(test suite)测试案例的集合.4.测试运行器(test runner)测试执行的组件.命令行接口可以用命令行运行测试模块,测试类以及测试方法.python -m unittest test_mod原创 2015-03-26 17:10:32 · 1617 阅读 · 0 评论 -
Python模块和包
模块概述如果说模块是按照逻辑来组织 Python 代码的方法, 那么文件便是物理层上组织模块的方法。 因此, **一个文件被看作是一个独立模块, 一个模块也可以被看作是一个文件。 模块的文件名就是模 块的名字加上扩展名 .py 。 与其它可以导入类(class)的语言不同,在 Python 中你导入的是模块或模块属性**。模块名称空间一个名称空间就是一个名称到对象的关系映射.导入模块导入模块整体原创 2015-03-20 14:55:29 · 691 阅读 · 0 评论 -
Python单元测试框架unittest测试过程简介
测试步骤1. 导入unittest模块import unittest2. 编写测试的类继承unittest.TestCaseclass Tester(unittest.TestCase)3. 编写测试的方法必须以test开头def test_add(self)def test_sub(self)原创 2015-03-20 15:43:44 · 1020 阅读 · 0 评论 -
Python多线程编程简介
####创建线程 格式如下 threading.Thread(group=None, target=None, name=None, args=(), kwargs={})这个构造器必须用关键字传参调用 - group 线程组 - target 执行方法 - name 线程名字 - args target执行的元组参数 - kwargs target执行的字典参数Thread对象原创 2015-03-17 15:24:30 · 971 阅读 · 0 评论 -
python字典总结
1.dict()创建字典>>> fdict = dict((['x', 1], ['y', 2]))>>> fdict{'y': 2, 'x': 1}2.fromkeys() 来创建一个"默认"字典,字典中元素具有相同的值 >>> ddict = {}.fromkeys(('x', 'y'), -1)>>> ddict{'原创 2015-03-27 17:06:16 · 683 阅读 · 0 评论 -
python函数简介
这里先解释一下几个概念 - 位置参数:按位置设置的参数,隐式用元组保存对应形参.平时我们用的大多数是按位置传参.比如有函数def func(a,b,c),调用func(1,2,3).即a=1,b=2,c=3 - 关键字参数:可以通过关键字设置参数,不用关心参数位置,隐式用字典保存形参.比如有函数def func(a,b,c),调用func(b=1,c=2,a=3),即a=3,b=1,c=2普通格原创 2015-03-11 10:51:50 · 1161 阅读 · 0 评论 -
Python之命令解析模块optparse
示例from optparse import OptionParser[...]def main(): usage = "usage: %prog [options] arg" parser = OptionParser(usage) parser.add_option("-f", "--file", dest="filename",原创 2015-03-30 14:19:20 · 802 阅读 · 0 评论 -
Python之随机生成数random模块
代码#!/usr/bin/env python#coding=utf-8import random#生成[0, 1)直接随机浮点数print random.random()#[x, y]中的随机整数print random.randint(1, 100)list = [1, 2, 3, 4, 5]#随机选取print random.choice(list)#随机打乱random.shu原创 2015-03-30 11:07:04 · 852 阅读 · 0 评论 -
python文件操作
打开文件open函数返回一个文件对象,基本语法: file_object = open(file_name, access_mode=’r’[,buffering=-1])file_name 是包含要打开的文件名字的字符串, 它可以是相对路径或者绝对路径. 可选变量access_mode 也是一个字符串, 代表文件打开的模式. 通常, 文件使用模式 ‘r’, ‘w’, 或是 ‘a’模式来打开,原创 2015-03-23 15:23:46 · 759 阅读 · 0 评论 -
Python日志模块logging
logging分为4个模块: loggers, handlers, filters, and formatters.loggers: 提供应用程序调用的接口handlers: 把日志发送到指定的位置filters: 过滤日志信息formatters: 格式化输出日志LoggerLogger.setLevel() 设置日志级别 Logger.addHandler()和Logger.re原创 2015-03-30 17:28:53 · 593 阅读 · 0 评论 -
Python解析命令行参数模块getopt
格式getopt(args, options[, long_options])1.args表示要解析的参数. 2.options表示脚本要识别的字符.字符之间用”:”分隔,而且必须要以”:”后结尾,例如”a:b:c:”. 3.long_options是可选的,如果指定的话,可以解析长选项.形式为字符串列表,如[‘foo=’, ‘frob=’].长选项要求形式为”–name=value” 4.该原创 2015-03-24 16:14:39 · 1164 阅读 · 0 评论 -
Python之配置文件解析模块ConfigParser简介
一、ConfigParser简介ConfigParser 是用来读取配置文件的包。配置文件的格式如下:中括号“[ ]”内包含的为section。section 下面为类似于key-value 的配置内容。1: [db]2: db_host = 127.0.0.13: db_port = 224: db_user = root5:转载 2015-03-24 17:13:45 · 502 阅读 · 0 评论 -
python面向对象(下)
继承继承描述了基类的属性如何“遗传”给派生类。一个子类可以继承它的基类的任何属性,不管是数据属性还是方法。 创建子类的语法看起来与普通(新式)类没有区别,一个类名,后跟一个或多个需要从其中派生的父类:class SubClassName (ParentClass1[, ParentClass2, ...]): 'optional class documentation string'原创 2015-03-18 16:17:34 · 824 阅读 · 0 评论 -
Python字符串处理函数
返回被去除指定字符的字符串默认去除空白字符 删除首尾字符:str.strip([char]) 删除首字符:str.lstrip([char]) 删除尾字符str.strip([char])判断是否匹配首末字符匹配成功返回True,否则返回False 匹配首字符:str.startswith(char[, start[, end]]) 匹配末字符:str.endswith(char[, st原创 2015-04-04 09:33:19 · 850 阅读 · 0 评论 -
Python与shell的交互方式
hello.py代码如下:#!/usr/bin/pythonprint "hello, world!"TestInput.py代码如下:#!/usr/bin/pythonstr = raw_input()print("input string is: %s" % str)1.os.system(cmd)这种方式只是执行shell命令,返回一个返回码(0表示执行成功,否则表示失败)retcode原创 2015-04-04 11:23:08 · 13837 阅读 · 0 评论 -
如何用python在mysql上创建1亿条数据
建表首先在mysql的example库上创建表useruse example;create TABLE `user` ( `id` int(11) NOT NULL, `last_name` varchar(45) DEFAULT NULL, `first_name` varchar(45) DEFAULT NULL, `sex` set('M','F') DEFAULT NUL原创 2016-04-08 15:16:16 · 6189 阅读 · 1 评论