Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有什么好处吗?_Python_Sockets_Twisted - Fatal编程技术网

Python 有什么好处吗?

Python 有什么好处吗?,python,sockets,twisted,Python,Sockets,Twisted,我一直听到关于Twisted for python的大肆宣传,但我只是觉得很困惑。你认为什么更容易使用?简单的套接字还是实现扭曲的?我认为这很好。看看。Twisted是一个并发框架。它允许您在一个应用程序中处理多个任务,而无需使用线程/进程。它使用事件驱动的异步系统来实现这一点,尤其适用于网络应用程序。异步代码通常倾向于与普通代码有点“不同”,因为流不是显式的,事情是基于外部事件发生的。这可能会让人困惑,但它是有效的。Twisted可以说是最成熟的Python异步并发库,所以如果您正打算这么做,

我一直听到关于Twisted for python的大肆宣传,但我只是觉得很困惑。你认为什么更容易使用?简单的套接字还是实现扭曲的?

我认为这很好。看看。

Twisted是一个并发框架。它允许您在一个应用程序中处理多个任务,而无需使用线程/进程。它使用事件驱动的异步系统来实现这一点,尤其适用于网络应用程序。异步代码通常倾向于与普通代码有点“不同”,因为流不是显式的,事情是基于外部事件发生的。这可能会让人困惑,但它是有效的。Twisted可以说是最成熟的Python异步并发库,所以如果您正打算这么做,Twisted是一件值得打赌的事情


您所说的“简单套接字”是通信原语,并不能真正与twisted相比。你想做什么?

我坚持我在(第二版,第540页)中写的内容:

Twisted包括强大的高级 组件,如web服务器、用户 身份验证系统、邮件服务器 和客户端、即时消息、SSH 客户端和服务器、DNS服务器和 客户端等,以及 较低级别的基础设施 所有这些高级组件都是 建造。每个组件都具有很高的可用性 可扩展且易于定制,以及 所有这些都集成在一起以实现互操作 平稳地这是对权力的致敬 对Python和 Twisted的开发人员可以 在两兆字节内完成 值得下载

问这个极其丰富和强大的框架是否比“简单插座”更“易于使用”,有点像问汽车是否比螺丝更“易于使用”:这是一个多么奇怪的问题

汽车是用螺丝钉(除其他外)制造的,不能像螺丝钉那样“简单易用”——因为螺丝钉的作用很小,汽车的作用就很大

但是,如果你想从A到B(可能还想运送乘客、行李、宠物等等),螺丝钉帮不了什么忙(除非你基本上是想从头开始造一辆车;-)

当然,汽车不是从A到B的唯一途径,就像twisted不是用Python构建以网络为中心的系统的唯一途径一样。马和四轮马车(like)既古雅又有趣,但不太实用;高速列车(比如)可能更容易使用,至少同样快,但灵活性要低得多;对于各种特殊用途,您可能更喜欢各种其他交通工具,从独轮车到游轮(比如Python和网络,各种其他包,从到)--所有这些都将包括螺钉作为其组件的一部分(比如,所有都将包括插座作为其构建方式的一部分),没有一个比“简单套接字”更容易使用,每个(在其自身的适用范围内)都比“简单套接字”本身可能为您做的更多


Twisted
在很多情况下都是一个很好的选择,当您需要集成功能的多个方面和/或实施一些没有完全打包解决方案的协议时,通常是最好的选择。“简单套接字”并非如此——它们只是一个低级别组件,高功能、高级别的组件就是从中构建出来的,而且很少有好的理由(当然,除了学习)在套接字之上“从头开始”构建“自己的”高级别组件(而不是选择功能强大、构建良好的现有组件)--就像你很少有理由用晶体管、电阻器、电容器等制造自己的计算机,而不是选择合适的集成电路一样;-)

Twisted于2002年首次发布,自那时以来,它的销量大幅膨胀;(这是一个敏感的话题,许多人会认为这在框架中是好的和必要的)-但是对于现在接近项目的人来说,这可能有点令人畏惧。但是,如果您正在推进异步框架,则有一些选择。我发现这个博客很有趣:。撇开基准测试不谈,仅代码示例就比较起来非常有趣

简单插座?我只是想学习。这就是为什么我问:b我想学造汽车!:Phope有一个“简单地说是扭曲的”。我喜欢《简而言之的Python》和《Python食谱》这本书。我仍然不能熟练地用twistedmatrix编写代码,甚至读完了当前的Twisted书籍和Twisted文档…@Jake,学习制造汽车是一项了不起的努力。不幸的是,没有真正好的教科书(至少不是一本基于Python的教科书),但您可以通过学习套接字、TCP/IP、更高级别的协议、Python标准库中的一些协议的实现(普通的,没有多任务),然后学习线程与异步系统、asyncore、twisted,逐步取得进展(在每种情况下,将“我如何在任务X中使用它”与“这是如何在内部实现的,以及他们为什么选择这个设计决策”)。这确实是一个漫长的旅程,但是,前面的学习很棒!-)孙强,我知道除了非常面向任务的“要点”之外,没有其他书籍,我认为这就是你所说的“当前扭曲的书籍”,--遗憾的是,在《坚果壳》和《烹饪书》第二版中提到Twisted的篇幅太短,无法教你任何实质性的细节(空间总是一个暴君)。@Alex,是的,这是一本参考书。几年前,大多数与python相关的书籍都是“通用”python书籍,提供了全面的介绍。现在Python比较流行,有一些专门的Python书籍只涵盖部分主题。我认为这对Python社区是件好事(当然对我也是)。twisted很重,我同意,但并不臃肿。这是一种非常解放的感觉,当你在寻找某样东西时,你发现它在twisted内部——已经实现、测试并准备好了。