2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 如何用通俗易懂的语言解释《Flask 框架作者希望看到的 Python》到底在说什么?

如何用通俗易懂的语言解释《Flask 框架作者希望看到的 Python》到底在说什么?

时间:2020-11-18 19:45:12

相关推荐

如何用通俗易懂的语言解释《Flask 框架作者希望看到的 Python》到底在说什么?

后端开发|Python教程

PythonPython,Python,slots,Flask

后端开发-Python教程

原文:Flask 框架作者希望看到的 Python

管理客户系统源码,Ubuntu创建菜单窗口,tomcat为什么一闪而过,爬虫 摄像头,php图像识别技术原理学习,seo技术报告lzw

Python 真的有这种「最大的设计错误」吗?难道 Python 设计者看不到?「槽(slots)系统」真的很糟糕吗?回复内容:

作者吐槽了Python语言与CPython解释器结合得过于紧密。甚至有时候CPython解释器的某些实现成为了语言的一部分。

绿色征途 源码,vscode同步工程中的文件,ubuntu农历,tomcat内存过高访问不了,sqlite 合并表格,ps网页设计psd,sql连接业务服务器失败,discuz 自动发帖插件,dva前端框架视频,网上小爬虫,php正整数,seo推广工资,springboot手撕教学,视频教学网站php源码,直播 网页 模板,discuz后台设置默认模板,织梦后台密码破解工具,jquery 页面滚动插件,java酒店管理系统视频,拼手气小程序lzw

Python的问题在文章的“该死的解释器”一节有了一个直接的解释:

带缓存的文件操作 源码,vscode粘贴文件夹,Ubuntu长按关机,tomcat在使用1099,pygame爬虫实例,php跳转乱码,如何加入seo 关键词,代发短信网站源码,织梦网络模板下载地址lzw

比如,你写了一个BigInteger类(只是举例子而已)

class BigInteger(object): ... def __add__(self, other): return BigInteger(other.Value + self.Value) ...

我认为作者的意思是,Python现在的发展模式是,公开搜集PEP,然后在现有基础上根据被采用的PEP打补丁,却几乎从来不对早起历史遗留下的解释器设计做调整和完善,并且几乎是针对CPython的。新特性越来越多,语言越来越复杂,老的问题一直没有改进,并且PSF致力于把一些历史遗留的烂设计解释成这是Python的哲学……与此同时,Python语言的文档其实是CPython的文档,于是乎其它实现,如Jython、PyPy、IronPython也不得不参照这些个奇怪的设计来做……

他举的例子,如slots的设计就是完全为了兼容了早期解释器把内置类型的一些方法而做的,以现在的角度来看完全没有必要……

再说GIL,如果按照python哲学,PSF说这么做更便于写C扩展什么的,说只需要一个解释器实体什么的,明明可以脱离GIL,并且别家也都这么做了,性能也确实能有很大改善,再说GIL带来的明显性能缺陷……没有任何道理把单解释器归到python哲学里……

大致如此吧……

所以Python / Ruby这些编程语言基本上都是implement-driven而非specification-driven来设计的。

Ruby有过1.8到1.9的一次蜕变,整体上还算是好的。

当然你也会看到其他人在吐槽:Matz’s Ruby Developers Don’t Use RubySpec and It’s Hurting Ruby

整篇文章的意思就是说:

Python明面上给了你一套标准,背地里自己老走后门;

操蛋的是,写得很多库之类的还特么依赖自己的后门儿,就算新来的,比如PyPy想走标准,也走不通了,最后也被迫走了后门;

更操蛋的是,他那个后门,开的也不是很高级,一堆缺陷。

首先,flask做的挺烂的,混乱的测试支持,没准的卡死问题。

然后,他提到的很多问题是框架设计层面的,比如slot,一般用户用不到,就算需要类似功能也可以有其他实现。

Python C层面确实很多问题,甚至我怀疑都不能算积重难返,而是故意拖延。Python3在几年前决定大规模重构,但很多核心问题还是扔在那里没动。比如GIL仍然是进程级的,而不是解释器级的。以当前状态看,如果有Python4的那天,肯定还是个不兼容的升级。

说说看而已,对正常的Python用户,这些讨论都没什么卵用。反正大家又用不上。

Slot 这一点没看出来有什么大不了的槽点,cpython 投机取巧又不是说别的解释器不能投机取巧了,无非就是语言规范散漫了点,比这更戳死人的槽点多了去了。

私以为,以 flask 那个样子,作者这种吐槽不用太当真,什么时候 bottle 作者也开始吐槽了再说吧。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。