玩蛇网 Python之家

玩蛇网 Python之家,python爱好者的学习平台。 ...

↑我也要推荐

Function vs class

发布时间:2013-04-20 21:03:15, 关注:+4219, 赞美:+8, 不爽:+6

本文标签: flask web.py django pylons turbogears

原始出处: kJam

Web.py 的影响深远, 同时代的 Django, 如今已经非常流行. 但是django之后呢? Tornadowebapp 等一系列框架已经自然的选择了web.py的进化路线.

几年前人们在讨论web.py, 现在人们在讨论Flask, Flask 成为 python framework 中的简洁的代名词.

这里谈一谈一个小细节, 关于framework中request handler. Tornado选择了class作为request handler, django和Flask则使用函数, 更简洁.

我自己也强烈倾向于简洁, 能用function绝不class. 开始的那段时间我是django的忠实fans. 同一时代的Pylons和TurboGears则使用类controller.

使用tornado之后, 我的态度有些转变. Tornado使用类controller实为必须.

根据自己的经验, 我相信很多人有和我一样的体验: 我们尝试解决问题的时候, 总是先创建一个空白的py文件开始解决问题. 为了重用自己的代码, 我们会将代码编程函数. 函数的弱点在于很多时候中间变量状态无法保存(除非你真的很擅长FP). 于是最后我们的函数又被加上了self, 变成了class.

Tornado内部引入了异步编程, 异步是tornado的核心, 很多中间状态需要保存. 一个request不再等同于一次函数操作.

所以, 这里的观点是, 我们崇尚简洁, pylons, TG的类controller鸡肋了一点, 在django那个没有异步的时代一个函数足够了. 根据实际需要来, 在异步时代, 类controller必须, tornado正解. Flask一味追求简洁, 似乎固执了一点, 还在和django这样的前辈使劲吗?

另外我要举个例子, 说明一下self在tornado编程环境下是如何的贴心.

如果你觉得本站对你有帮助,欢迎向本站赞助 :P

使用支付宝捐赠

Copyright© Python4cn(news, jobs) simple-is-better.com, 技术驱动:powered by web.py 空间主机:Webfaction

版权申明:文章转载已注明出处,如有疑问请来信咨询。本站为 python 语言推广公益网站,与 python 官方没有任何关系。

联系/投搞/留言: en.simple.is.better@gmail.com 向本站捐赠