
python
追寻北极
没有月亮的晚上,我们相信星光。没有路可走的时候,我们相信远方.--
展开
-
跨语言通信方案的比较—Thrift、Protobuf和Avro
thrift由facebook出品,protobuffer由google出品;下面对比一下这两个的区别。参考:http://zhidao.baidu.com/link?url=yNLBeHhWokfwB677UZHoyv4vLyPOZEEQypUMiX__YIhp5E7UmpvIWTArKPMab32xj5gkRo4a6CXoZ1nxore82kXyOzfXdaRRhOAPynxYmB7转载 2017-11-02 18:36:31 · 1096 阅读 · 0 评论 -
Python中super的用法
super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。总之前人留下的经验就是:保持一致性。要不全部用类名调用父类,要不就全部用 super,不要一半一半。普通继承『代码』[python]view plaincopyc转载 2014-12-17 14:03:19 · 641 阅读 · 0 评论 -
10 款最好的 Python IDE
Python 非常易学,强大的编程语言。Python 包括高效高级的数据结构,提供简单且高效的面向对象编程。 Python 的学习过程少不了 ID Python 非常易学,强大的编程语言。Python 包括高效高级的数据结构,提供简单且高效的面向对象编程。 Python 的学习过程少不了 IDE 或者代码编辑器,或者集成的开发编辑器(IDE)。这些 Python 开发工具帮转载 2014-12-17 14:02:33 · 847 阅读 · 0 评论 -
python中的自省
python中的自省,介绍一下几个重要的函数: dir 函数,传入的参数是对象,返回该对象的所有属性和函数列表:>>> import string>>> dir(string)['Formatter', 'Template', '_TemplateMetaclass', '__builtins__', '__doc__', '__file__', '__name__转载 2014-12-17 14:02:01 · 1369 阅读 · 0 评论 -
python中的反射
python是如何体现反射的: globals () 这个函数返回一个 map ,这个 map 的 key 是全局范围内对象的名字, value 是该对象的实例。在不导入任何 module 下,执行 globals ()的结果如下:>>> globals(){'__builtins__': , '__name__': '__main__', '_转载 2014-12-17 14:03:38 · 715 阅读 · 0 评论 -
Python容易混淆的地方
每门编程语言都有易混淆的部分,下面列举出一些Python的易混淆知识点。== 和 is 的区别在Python中,”==” 操作符测试值的相等性; “is”表达式测试对象的一致性,即是否指向同一个对象。list1 = [1,('a',3)]list2 = [1,('a',3)]list1 == list2, list1 is list2 #(True,False)说明:l转载 2014-12-17 14:02:09 · 584 阅读 · 0 评论 -
Python的functools模块
这个模块提供了3个有趣的函数,这里介绍下其用法。首先是partial函数,它可以重新绑定函数的可选参数,生成一个callable的partial对象:[python] view plaincopyprint?>>> int('10') # 实际上等同于int('10', base=10)和int('10', 10) 10 >>转载 2014-12-17 17:52:54 · 637 阅读 · 0 评论 -
python中的继承
继承是面向对象的重要特征之一,继承是两个类或者多个类之间的父子关系,子进程继承了父进程的所有公有实例变量和方法。继承实现了代码的重用。重用已经存在的数据和行为,减少代码的重新编写,python在类名后用一对圆括号表示继承关系, 括号中的类表示父类,如果父类定义了__init__方法,则子类必须显示地调用父类的__init__方法,如果子类需要扩展父类的行为,可以添加__init__方法的参数。转载 2014-12-17 14:03:38 · 682 阅读 · 0 评论 -
Python学习笔记
1. Python基础1.1. 概述Python是一个脚本解释器, 可以从命令行运行脚本, 也可以在脚本上双击, 象运行其他应用程序一样。它还是一个交互 shell, 可以执行任意的语句和表达式。Python 的交互 shell 可以计算任意的 Python 表达式, 包括任何基本的数学表达式。交互 shell 可以执行任意的 Python 语句, 包括 p转载 2014-12-17 14:01:05 · 1921 阅读 · 0 评论 -
python异常处理(基础)
之前在学习python的时候有整理过python异常处理的文章,不够简单也不够完整,所以决定再整理一篇,算做补充。http://www.cnblogs.com/fnng/archive/2013/04/28/3048356.html python shell>>> open('abc.txt','r')Traceback (most recent call las转载 2014-12-17 13:59:26 · 641 阅读 · 0 评论 -
python true false
在python中,任何对象都可以判断其真假值:True,False在if或while条件判断中,下面的情况值为False:1.None2.Flase3.数值为0的情况,如:0,0.0,0j4.所有空序列,如:'',(),[]5.所有空mapping,如:{}6,如果自定义的class中,定义了a __bool__() 或者 __len__() 方法,当这些方法返原创 2014-12-17 13:59:23 · 2148 阅读 · 0 评论 -
python的functools.partial用法解释
官方给的例子:from functools import partialbasetwo = partial(int, base=2)basetwo.__doc__ = 'Convert base 2 string to an int.'basetwo('10010')18不管你懂没懂,反正我是没懂。最后Google了下,在 这里找到一个简单易懂的例子。摘转载 2014-12-17 17:36:29 · 16953 阅读 · 1 评论 -
tornado源码分析系列 [网络层 IOLoop类] 优秀系列文章可以看看
看看IOLoop的类组织结构1234567891011121314151617181920212223|---IOLoop ---__init__转载 2014-12-17 17:07:23 · 742 阅读 · 0 评论 -
Python内建函数(H)
hasattr(object, name)说明:判断对象object是否包含名为name的特性(hasattr是通过调用getattr(ojbect, name)是否抛出异常来实现的)。参数object:对象。参数name:特性名称。示例:>>> hasattr(list, 'append')True>>> hasattr(list, 'add')Fa转载 2014-12-17 14:03:08 · 824 阅读 · 0 评论 -
python的多重继承
python和C++一样,支持多继承。概念虽然容易,但是困难的工作是如果子类调用一个自身没有定义的属性,它是按照何种顺序去到父类寻找呢,尤其是众多父类中有多个都包含该同名属性。对经典类和新式类来说,属性的查找顺序是不同的。现在我们分别看一下经典类和新式类两种不同的表现:经典类: #! /usr/bin/python# -*- coding:utf-8 -*-转载 2014-12-17 14:02:20 · 553 阅读 · 0 评论 -
python代码`if not x:` 和`if x is not None:`和`if not x is None:`使用
代码中经常会有变量是否为None的判断,有三种主要的写法: 第一种是`if x is None`;第二种是 `if not x:`;第三种是`if not x is None`(这句这样理解更清晰`if not (x is None)`) 。如果你觉得这样写没啥区别,那么你可就要小心了,这里面有一个坑。先来看一下代码:[python] vie转载 2014-12-17 13:59:58 · 931 阅读 · 0 评论 -
Tornado源码分析之HTTPConnection ---- http协议解析
上回说道,IOLoop接收到客户端的连接并生成HTTPConnection对象。接上回:HTTPConnection的主要功能是读取客户端发来的数据,并以http协议解析,生成HTTPRequest对象。HTTP协议在相关的rfc文档中有描述,心里头有个大概的了解就行。用python代码来实现http解析也不是很难,大概就这么几步:解析消息头,一般的get,head,delete,option类型转载 2014-12-17 14:53:12 · 1334 阅读 · 0 评论 -
python垃圾回收机制
转载自: http://my.oschina.net/hebianxizao/blog/57367现在的高级语言如java,c#等,都采用了垃圾收集机制,而不再是c,c++里用户自己管理维护内存的方式。自己管理内存极其自由,可以任意申请内存,但如同一把双刃剑,为大量内存泄露,悬空指针等bug埋下隐患。 对于一个字符串、列表、类甚至数值都是对象,且定位简单易用的语言,转载 2014-12-17 14:01:40 · 1334 阅读 · 0 评论 -
python 中 u 和 r 加字符
字符串简介字符串序列用于表示和存储文本,python中字符串是不可变的,一旦声明,不能改变通常由单引号(' ),双引号(" ),三引号(''' """)包围其中三引号可以由多行组成,编写多行文本的快捷语法,常用语文档字符串,在文件的特定地点,被当做注释。便捷的多行注释Python实际三类字符串:1.通常意义字符串(str)2.原始字符串,以大写R 或转载 2014-12-17 14:17:34 · 6616 阅读 · 0 评论 -
Tornado源码分析之IOLoop
在Tornado框架上发生的故事,起源于IOLoop。IOLoop就像是Tornado的心脏,他接受来自Browser,爬虫,蜘蛛发出的链接,接收他们的数据,然后按Http协议进行解析,将解析的结果,经由url路由,分配到不同的RequestHandler进行处理,RequestHandler处理好结果,再由IOLoop发往客户端。 IOLoop位于ioloop.py模块转载 2014-12-17 14:47:25 · 1128 阅读 · 0 评论 -
在 WebSphere Studio 中配置并使用 XA 分布式事务
2004 年 9 月 01 日本文描述了分布式事务,并向您演示了如何使用用于 DB2、Oracle 和 JMS 等可以在分布式事务中同时使用的 XA 资源来配置 WebSphere Studio Application Developer 测试服务器。本文描述了一个在同一事务中更新数据库并发送 JMS 消息的会话 bean。由于必须配置 Oracle 数据库以支持 XA 事务,因此本文展示转载 2017-11-01 18:27:08 · 1346 阅读 · 0 评论 -
WebSphere下配置 Oracle XA数据源
约定本文假定WebSphere安装在/usr/IBM/WebSphere/AppServerWebSphere版本是6.1.0.21 or uporacle 10g or up由于本文针对集群环境,所以文中提到的WebSphere作用域 默认使用集群作用域,如果不是集群,选择作用域时请选单独的应用服务器的 配置复制驱动程序转载 2017-11-01 18:21:35 · 1411 阅读 · 0 评论 -
NodeJS优缺点及适用场景讨论
概述:NodeJS宣称其目标是“旨在提供一种简单的构建可伸缩网络程序的方法”,那么它的出现是为了解决什么问题呢,它有什么优缺点以及它适用于什么场景呢?本文就个人使用经验对这些问题进行探讨。一. NodeJS的特点我们先来看看NodeJS官网上的介绍:Node.js is a platform built on Chrome’s JavaScript runtim转载 2015-06-21 22:11:06 · 1037 阅读 · 0 评论 -
python的md5和sha1加密
首先介绍一下MD5和SHA1 MD5MD5的全称是Message-Digest Algorithm 5(信息-摘要算法)。128位长度。目前MD5是一种不可逆算法。具有很高的安全性。它对应任何字符串都可以加密成一段唯一的固定长度的代码。 SHA1SHA1的全称是Secure Hash Algorithm(安全哈希算法) 。SHA1基于MD5,转载 2015-04-07 11:53:07 · 18028 阅读 · 0 评论 -
WebSocket+HTML5实现在线聊天室
最近在看HTML5的东西,我比较感兴趣的是WebSockets,WebWorker以及CORS。去官方过了下WebSockets的规范。WebSockets在Web层实现了TCP协议来进行双向通信,使得程序员们不用再苦逼苦的以各种方式模拟这种双向通信了。这里用纯WebSockets+HTML5的一些新特性实现了一个在线聊天室的功能。前端是我永远的痛,好在有Boo转载 2015-03-31 15:48:48 · 5364 阅读 · 0 评论 -
python 装饰器例子
1,测试a#!/usr/bin/env pythondef a(fn): print 'a>>>>' def d(stc): print stc+'d>>>>>' fn(stc); return ddef b(fn): def e(args): print 'b>>>' fn(args)原创 2014-12-16 11:52:00 · 699 阅读 · 0 评论 -
@修饰符--python中的装饰器
装饰器模式可以在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责,也能够处理那些可以撤销的职责。经常用于日志记录、性能测试等场合。想象一下这个很常见的场景,你写了一个方法只提供给以登陆的用户访问(事实上我也是通过django的@login_required才了解到@修饰符的),你可以写以下代码:[python] view plaincopy转载 2014-12-16 11:03:13 · 515 阅读 · 0 评论 -
python 中的@符号
@修饰符挺像是处理函数或类之前进行预处理。 语法示例:@dec1@dec2def test(arg): pass其效果类似于dec1(dec2(test(arg)))修饰函数还可以带参数。@dec1(arg1,arg2)def test(testarg)效果类似于dec1(arg1,arg2)(test(arg))原创 2014-12-16 10:59:26 · 1064 阅读 · 0 评论 -
Tornado用回调代替gen
Tornado利用python的yield机制,用gen模块可以用同步的代码逻辑书写异步调用的代码。一般的,在程序开发过程中,方便的书写逻辑必然会带来运行上的额外开销。笔者的一个整合型爬虫服务设计大量的异步调用逻辑,出现HTTP超时的比例大概为1%,查看被调用的服务日志未出现超时,怀疑是gen的协程机制未有能使IOLoop的读事件及时响应(注:此问题还未能验证)。下面就将常见的转载 2014-12-16 09:16:42 · 880 阅读 · 0 评论 -
使用ngrok让微信公众平台通过80端口访问本机
使用ngrok让微信公众平台通过80端口访问本机首先声明我是用java-tomcat来研究微信公众平台的。微信公众平台要成为开发者,需要填写接口配置信息中的“URL”和“Token”这两项(参见:http://mp.weixin.qq.com/wiki/index.php?title=%E6%8E%A5%E5%85%A5%E6%8C%87%E5%8D%97),郁闷的是官网有一处这样转载 2014-12-16 09:10:33 · 665 阅读 · 0 评论 -
Tornado源码分析之http服务器篇
一. Tornado是什么?Facebook发布了开源网络服务器框架Tornado,该平台基于Facebook刚刚收购的社交聚合网站FriendFeed的实时信息服务开发而来.Tornado由Python编写,是一款轻量级的Web服务器,同时又是一个开发框架。采用非阻塞I/O模型(epoll),主要是为了应对高并发 访问量而被开发出来,尤其适用于comet应用。转载 2014-12-18 11:49:44 · 769 阅读 · 0 评论 -
tornado源码分析系列 buffer事件类IOStream
引言:在分析了部分IOLoop,了解了其工作原理后,就可以看看建立在IOLoop上层的IOStream。IOStream主要提供的功能就是异步的读写操作。IOStream提供的接口有几个:1.read_bytes(bytes,callback)这个接口就是在有固定的字节的数据到来的时候调用回调函数2.read_until(delimiter,callback)转载 2014-12-18 10:49:12 · 879 阅读 · 0 评论 -
轻量级web server Tornado代码分析
最近在做项目,使用了Tornado这个用python写的由Facebook开源出来的web服务器框架。这确实是一个轻量级的框架,只需要几行代码,直接运行脚本,就可以建立起一个server了。Tornado使用了epoll方式,在linux环境下,用了epoll的,总是受到更多的关注,呵呵。这比我们销售短信项目中使用的c++ Poco库使用的poll模型效率要高一些。再加上python语言本身强大的转载 2014-12-18 09:34:48 · 715 阅读 · 0 评论 -
python dict字典
当我基本能从事Django框架来对网站进行开发的时候,发现对Python的知识了解得太少了,甚至到了知识匮乏的阶段。看来,我得温习一下Python知识了。 据我个人的理解,Python中有三种内置的数据类型。dictionary(字典)、List(列表)和tuple(元组)。下面我将对这几个内置的数据类型进行总结。 Dictionary(字典) 首先,什么是字典呢?通俗转载 2014-12-18 13:59:46 · 584 阅读 · 0 评论 -
使用Tornado进行网络异步编程
最近在前辈的感染下,开始学习Tornado,然后从他的博客上转载来一篇初步的demo教程,原文出处为使用Tornado进行网络异步编程,欢迎大家转载,不过请尊重原创,标注出处。TornadoTornado 是一款非阻塞可扩展的使用Python编写的web服务器和Python Web框架, 可以使用Tornado编写Web程序并不依赖任何web服务器直接提供高效的we转载 2014-12-18 09:33:55 · 697 阅读 · 0 评论 -
Python的数据库ORM框架:SQLAlchemy
SQLAlchemy是Python编程语言下的一款开源软件。提供了SQL工具包及对象关系映射(ORM)工具,使用MIT许可证发行。SQLAlchemy“采用简单的Python语言,为高效和高性能的数据库访问设计,实现了完整的企业级持久模型”。SQLAlchemy的理念是,SQL数据库的量级和性能重要于对象集合;而对象集合的抽象又重要于表和行。因此,SQLAlchmey采用了类似于Java里转载 2014-12-18 09:33:34 · 1376 阅读 · 0 评论 -
python中的Boolean运算和真假值
在python中,任何对象都可以判断其真假值:True,False在if或while条件判断中,下面的情况值为False:1.None2.Flase3.数值为0的情况,如:0,0.0,0j4.所有空序列,如:'',(),[]5.所有空mapping,如:{}6,如果自定义的class中,定义了a __bool__() 或者 __len__() 方法,当这些方法返转载 2014-12-17 14:01:04 · 3573 阅读 · 0 评论 -
Tornado源码分析之http服务器篇
一. Tornado是什么?Facebook发布了开源网络服务器框架Tornado,该平台基于Facebook刚刚收购的社交聚合网站FriendFeed的实时信息服务开发而来.Tornado由Python编写,是一款轻量级的Web服务器,同时又是一个开发框架。采用非阻塞I/O模型(epoll),主要是为了应对高并发 访问量而被开发出来,尤其适用于comet应用。转载 2014-12-16 09:13:11 · 520 阅读 · 0 评论 -
理解 tornado.gen
Tornado 通过 @asynchronous decorator 来实现异步请求,但使用的时候必须将 request handler 和 callback 分离开,tornado.gen 模块可以帮助我们在一个函数里完成这两个工作。下面是官方的一个例子:12345678class GenAsyncHandler(RequestHandle转载 2014-12-16 09:08:21 · 1448 阅读 · 0 评论 -
python 连接oracle 报错 cx_Oracle.DatabaseErro
python 连接oracle 报错 cx_Oracle.DatabaseErro原创 2014-08-29 11:01:25 · 13592 阅读 · 0 评论