python中类型错误、计数不采用关键字的错误怎么改_Python设计错误

你要求链接或其他来源,但实际上没有。这些信息散布在许多不同的地方。什么才是真正构成设计错误的因素?您是只考虑语言定义中的语法和语义问题,还是包括诸如平台和标准库问题以及特定实现问题等实用问题?您可以说,从性能的角度来看,Python的动态性是一个设计错误,因为它很难实现一个简单高效的实现,而且很难(我没有说完全不可能)生成一个包含代码完成、重构和其他好东西的IDE。同时,你也可以为动态语言的优点辩护。

也许开始考虑这个问题的一种方法是看the language changes from Python 2.x to 3.x。当然,有些人会争辩说,print作为一个函数是不方便的,而另一些人则认为这是一个改进。总的来说,并没有那么多的变化,而且大多数变化都是非常小和微妙的。例如,map()和filter()返回迭代器而不是列表,range()的行为类似于xrange()过去,而dict方法类似于dict.keys()返回视图而不是列表。还有一些与整数相关的变化,其中一个大的变化是二进制/字符串数据处理。现在是文本和数据,文本总是Unicode。有几个语法变化,但它们更多的是关于一致性,而不是修改整个语言。

从这个角度来看,至少从2.x开始,Python就在语言(语法和语义)级别上设计得非常好。你可以一直争论基于缩进的块语法,但我们都知道这不会导致任何结果。。。;-)

另一种方法是查看其他Python实现试图解决的问题。它们中的大多数以某种方式解决性能问题,一些解决平台问题,还有一些添加或更改语言本身以更有效地解决某些类型的任务。Unladen swallow希望通过优化运行时字节编译和执行阶段,显著提高Python的速度。Stackless通过添加诸如微线程和微线程的结构、允许双向微线程通信的通道、协作或抢先运行微线程的调度以及暂停和恢复微线程执行的串行化,为高效、重线程应用程序添加功能。Jython允许在Java平台上使用Python,在.Net平台上使用IronPython。Cython是一种Python方言,它允许调用C函数和声明C类型,允许编译器从Cython代码生成有效的C代码。{a7}将隐式静态类型引入到Python中,并为独立程序或扩展模块生成C++。PyPy在Python的一个子集中实现Python,并更改一些实现细节,例如添加垃圾收集而不是引用计数。其目的是让Python语言和实现开发由于使用了更高级的语言而变得更加高效。Py V8通过V8 JavaScript引擎连接Python和JavaScript——可以说它解决了一个平台问题。Psyco是一种特殊的JIT,它动态地为当前正在处理的数据生成运行代码的特殊版本,这可以提高Python代码的速度,而无需编写优化的C模块。

其中,可以通过查看PEP-3146来说明Python的当前状态,它概述了Unladen Swallow如何合并到CPython中。这个PEP被接受了,因此Python开发人员可以判断目前最可行的方向是什么。注意,它关注的是性能,而不是语言本身。

所以我真的想说,Python的主要设计问题是性能领域的问题,但这些基本上都是任何动态语言都必须面对的挑战,Python语言家族和实现正在尝试o解决问题。至于像Javascript: the good parts中所列的那种彻底的设计错误,我认为需要更明确地定义“错误”的含义,但您可能需要查看以下的想法和意见:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值