学习Twisted

19 投票
4 回答
5922 浏览
提问于 2025-04-16 04:53

我该如何开始学习Twisted?你们推荐哪些书籍、文档或教程呢?

我问这个问题的原因是,我觉得学习Twisted可以帮助我更好地理解网络编程的相关概念(比如术语和工作原理等等)。我听说Twisted的文档不是很好,这是真的吗?

请注意,我希望得到一些对你们真的有帮助的建议。我想听听你们的经验。顺便说一下,我知道有官方文档,还有一本关于Twisted的O'Reilly书,这本书怎么样?

4 个回答

2

看看Twisted的文档里提供的示例吧。文档本身也不错,但不是特别全面。不过,API文档其实挺好的。

当你知道从哪个部分开始时,就可以尝试着玩玩代码,直到遇到问题为止。然后可以在网上搜索和你代码相关的示例,或者在StackOverflow上提问。

3

我学习Twisted的方式是从一个小项目开始,然后大量查资料;Twisted的教程有时候不太清楚,主要是要习惯这个框架和它的工作方式……

补充一下:我还建议你了解一下Twisted的基础,Twisted的核心思想是为Python提供事件驱动编程,还有一些其他功能,比如异步套接字和网页服务器类。

简单来说,Twisted中的“deferreds”和“callbacks”就是它的核心概念。你首先创建一个事件(也叫deferred对象),然后给它绑定一个回调函数;在某个时刻,你会触发这个事件,然后回调函数会被调用,并且会得到一个结果(可能是空的)来自你的事件操作。举个例子,如果你在一个表单上有一个按钮,你创建一个事件(deferred对象),然后绑定一个回调函数,当用户点击按钮时,就会触发这个事件,回调函数就会被调用来处理这个事件。

希望这些能让你对Twisted有个大概念,知道它在Python环境中是怎么用的。另外,还有IronPython(.NET),它也有事件处理的功能。

~乔治

27

我发现这个教程写得很好,内容也很有指导性,它是从主Twisted文档页面的第三方文档部分链接过来的。

这个教程包含了多个版本的“诗歌服务器和客户端”的实现。它从一个阻塞的、非Twisted的版本开始,然后逐步发展到完整的Twisted版本。每一步都引入了新的概念,并且提出了一些问题,这些问题会在后续的步骤中得到解决。

每一步的代码都可以在一个git仓库中找到。

撰写回答