http://www.klipdas.com/blog/?p=setting-up-twistedquotes-application
2.3 建立 TwistedQuotes应用
2.3.1 目标.
本文档介绍如何使用其他一些文档来建立TwistedQuotes应用,例如Twisted应用设计(24页)。
2.3.2 建立TwistedQuotes项目目录
为运行Twisted Quotes示例,你会需要做下面的工作:
在系统中创建TwistedQuotes目录;
将下面的文件放到TwistedQuotes目录下:
__init__.py
"""Twisted Quotes."""
quoters.py
from random import choice
from zope.interface import implements
from TwistedQuotes import quoteproto
class StaticQuoter:
"""
Return a static quote.
"""
implements(quoteproto.IQuoter)
def __init__(self, quote):
self.quote = quote
def getQuote(self):
return self.quote
class FortuneQuoter:
"""
Load quotes from a fortune-format file.
"""
implements(quoteproto.IQuoter)
def __init__(self, filenames):
self.filenames = filenames
def getQuote(self):
quoteFile = file(choice(self.filenames))
quotes = quoteFile.read().split('\n%\n')
quoteFile.close()
return choice(quotes)
quoteproto.py
from zope.interface import Interface
from twisted.internet.protocol import Factory, Protocol
class IQuoter(Interface):
"""
An object that returns quotes.
"""
def getQuote():
"""
Return a quote.
"""
class QOTD(Protocol):
def connectionMade(self):
self.transport.write(self.factory.quoter.getQuote()+'\r\n')
self.transport.loseConnection()
class QOTDFactory(Factory):
"""
A factory for the Quote of the Day protocol.
@type quoter: L{IQuoter} provider
@ivar quoter: An object which provides L{IQuoter} which will be used by
the L{QOTD} protocol to get quotes to emit.
"""
protocol = QOTD
def __init__(self, quoter):
self.quoter = quoter
plugins.tml
register("Quote of the Day TAP Builder",
"TwistedQuotes.quotetap",
description="""
Example of a TAP builder module.
""",
type="tap",
tapname="qotd")
将TwsitedQuotes目录的上一级目录添加到Python path,例如,如果TwistedQuotes目录是/tmp/TwistedQuotes,那么就将/tmp添加到Python path。在Unix下,可以使用export PYTHONPATH=/my/stuff:$PYTHONPATH,Winodws下,在系统变量PYTHONPATH前添加/my/stuff;。
在Python解释器中试着导入包:
Python 2.1.3 (#1, Apr 20 2002, 22:45:31)
[GCC 2.95.4 20011002 (Debian prerelease)] on linux2
Type "copyright", "credits" or "license" for more information.
>>> import TwistedQuotes
>>> # No traceback means you’re fine.
分享到:
相关推荐
- **示例**:文档中提到了一个名为 TwistedQuotes 的示例项目,展示了如何通过模块化设计来构建一个功能完善的引用系统。 - **组件架构**:最新的版本采用了组件化的架构,提高了代码的可维护性和复用性。 #### 四...
python小爬虫
最全的JAVA设计模式,包含原理图解+代码实现
CPPC++_世界上最快的3d贴图转换工具
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
CPPC++_OSGI for C 通往架构师之路
童心派贪吃蛇游戏pygame版
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手
python python学习代码2【KL】.zip
C#面向对象23种设计模式
CPPC++_现代活动指标
自学入门Python优质中文资源索引,包含书籍-文档-视频,适用于爬虫-Web-数据分析-机器学习方
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手
CPPC++_通过carlarosbridge在carla上实现自动驾驶planning and control
学习的Python笔记,都是精华
cppc++
cppc++
I06C0hws-Duke
Python+MySQL学习项目