摘要: firefly使用了twisted的pb 来实现rpc:http://twistedmatrix.com/documents/current/core/howto/pb-usage.html服务端#!/usr/bin/env python# Copyright (c) Twisted Matrix Laboratories.# See LICENSE for details.from twisted.spread import pbfrom twisted.internet import reactorclass One(pb.Root): def remote_takeTwo(self... 阅读全文
posted @ 2014-01-29 23:36 zhepama 阅读(525) 评论(0) 推荐(0) 编辑
摘要: 你的协议处理类通常是twisted.internet.protocol.Protocol的子类。许多协议处理继承于该类或者比该类更加方便的该类的子类。一个protocol类的实例可能反复连接,也可能在连接关闭之后销毁。这就意味着这些持续不断的配置信息不是保存在Protocol中。 这些持久性的配置被保存在工厂(Factory)类中,这些工厂类通常继承至twisted.internet.protocol.Factory,默认 的工厂类仅仅是实例化每个Protocol,然后设置他们的factory属性为这个默认的工厂实例本身。这就让每个Protocol都被存储,然后可能 修改,于是这样就形成了Pr 阅读全文
posted @ 2014-01-29 21:51 zhepama 阅读(857) 评论(0) 推荐(0) 编辑
摘要: 刚接触到RPC(远程过程调用),就是可以在本地调用远程机子上的程序的方法,看到一个简单的nodejs实现,用来学习RPC的原理很不错:nodejs light_rpc使用示例://服务端var light_rpc = require('./index.js');var port = 5556;var rpc = new light_rpc({ combine: function(a, b, callback){ callback(a + b); }, multiply: function(t, cb){ cb(t*2); }}).listen(port);Sample cl.. 阅读全文
posted @ 2014-01-29 09:21 zhepama 阅读(1920) 评论(0) 推荐(0) 编辑
摘要: 这些天断断续续在看Firefly, 看了一下distributed模块的设计,其实就是使用的twisted.spread.pb觉得以后要是想用Firefly有必要了解一下twisted, 所以在网上查了一下资料,更好的资料莫过于官方资料了,官方的例子挺多的,我挑了这一个例子:这里给个官方的例子:server:from twisted.spread import pb# 这里使用Referenceable是可以通过远程调用获得此对象class Two(pb.Referenceable): # remote_前缀是twisted要求的规范, Server中提供的方法必须以remote_开头 d.. 阅读全文
posted @ 2014-01-29 04:50 zhepama 阅读(865) 评论(0) 推荐(0) 编辑
摘要: http://blog.csdn.net/fjslovejhl/article/category/1544737 阅读全文
posted @ 2014-01-29 04:42 zhepama 阅读(123) 评论(0) 推荐(0) 编辑
摘要: http://www.python.org/dev/peps/pep-0318http://wiki.woodpecker.org.cn/moin/WeiZhong/DecoratorsInPython24?highlight=%28decorator%29 阅读全文
posted @ 2014-01-29 04:05 zhepama 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 入门构造和初始化构造定制类用于比较的魔术方法用于数值处理的魔术方法表现你的类控制属性访问创建定制序列反射可以调用的对象会话管理器创建描述器对象持久化对象总结附录介绍此教程为我的数篇文章中的一个重点。主题是魔术方法。 什么是魔术方法?他们是面向对象的Python的一切。他们是可以给你的类增加”magic”的特殊方法。他们总是被双下划线所包围(e.g.__init__或者__lt__)。然而他们的文档却远没有提供应该有的内容。Python中所有的魔术方法均在Python官方文档中有相应描述,但是对于他们的描述比较混乱而且组织比较松散。很难找到有一个例子(也许他们原本打算的很好,在开始语言参考中有描 阅读全文
posted @ 2014-01-29 02:17 zhepama 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 一、手动安装mysql1、准备一个mysql免安装版本(把原来安装好的版本复制一份即可。一次安装多次使用^_^),将mysql复制到指定目录。2、配置my.ini文件(本例使用的是5.0.22版本) 在mysql目录下可以看到几个文件my-innodb-heavy-4G.ini,my-large.ini 等等,这些都是MYSQL 给用户提供的几个配置my.ini的文件,你可以根据你的服务器配置情况,选用其中的一个改成.my.ini 就可以了,或者自己填(参照网上性能优化的 my.ini文件的配置,如是初学者便无所谓了)。 # The TCP/IP Port the MySQL Serve... 阅读全文
posted @ 2014-01-29 01:55 zhepama 阅读(529) 评论(0) 推荐(0) 编辑
摘要: 译注:这是一篇在Stack overflow上很热的帖子。提问者自称已经掌握了有关Python OOP编程中的各种概念,但始终觉得元类(metaclass)难以理解。他知道这肯定和自省有关,但仍然觉得不太明白,希望大家可以给出一些实际的例子和代码片段以帮助理解,以及在什么情况下需要进行元编程。于是e-satis同学给出了神一般的回复,该回复获得了985点的赞同点数,更有人评论说这段回复应该加入到Python的官方文档中去。而e-satis同学本人在Stack Overflow中的声望积分也高达64271分。以下就是这篇精彩的回复(提示:非常长)类也是对象在理解元类之前,你需要先掌握Python 阅读全文
posted @ 2014-01-29 01:49 zhepama 阅读(480) 评论(0) 推荐(0) 编辑
摘要: 目前我使用到的python中执行cmd的方式有三种:1. 使用os.system("cmd")这是最简单的一种方法,特点是执行的时候程序会打出cmd在linux上执行的信息。使用前需要import os。[python]view plaincopyprint?os.system("ls")2. 使用Popen模块产生新的process现在大部分人都喜欢使用Popen。Popen方法不会打印出cmd在linux上执行的信息。的确,Popen非常强大,支持多种参数和模式。使用前需要from subprocess import Popen, PIPE。但是Po 阅读全文
posted @ 2014-01-29 01:26 zhepama 阅读(577) 评论(0) 推荐(0) 编辑