Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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_Variables - Fatal编程技术网

为什么';Python是否提供定义静态类型变量的选项?

为什么';Python是否提供定义静态类型变量的选项?,python,variables,Python,Variables,我的理解是,动态类型减慢了解释器的速度,因为查找不能简化为静态函数地址 事情是这样的:对于大多数变量,您知道它们永远不会改变类型。位置元组将保留为元组,响应字符串将保留为字符串,几乎所有字典都将保留为字典 那么,为什么python不提供定义静态类型变量的选项来提高性能呢?类似于静态类型x='hello'或字符串x='hello'。缺点是什么 如果不能做到这一点的原因是由于Python内部的结构限制,那么这些限制是什么?它们是否一定会破坏交易?添加静态类型将是Python3语言的一个根本性变化。请

我的理解是,动态类型减慢了解释器的速度,因为查找不能简化为静态函数地址

事情是这样的:对于大多数变量,您知道它们永远不会改变类型。位置元组将保留为元组,响应字符串将保留为字符串,几乎所有字典都将保留为字典

那么,为什么python不提供定义静态类型变量的选项来提高性能呢?类似于
静态类型x='hello'
字符串x='hello'
。缺点是什么


如果不能做到这一点的原因是由于Python内部的结构限制,那么这些限制是什么?它们是否一定会破坏交易?

添加静态类型将是Python3语言的一个根本性变化。请参见关于静态类型的说明。最近的更新增加了指定类型提示的功能。就提高性能而言,Python3已经有了一个经过良好调整的哈希表,以帮助防止查找减慢解释器的速度。

这不是类型提示的要点吗?这比您想象的要复杂得多,而且大部分好处都包含在PyPy这样的JIT实现中。通过使用,可以强制执行类型提示注释。当然,这需要您的整个构建工具链利用它来获得最大的好处,但即使这样,好处也会在代码调用一个没有任何注释的函数时结束?您想先编译程序的一部分,然后动态运行其余部分吗?是否希望静态类型作为动态类型运行,直到您准备好运行必须编译的程序为止?我只是看到了很多问题。在动态语言中添加渐变类型是一个开放的研究问题。你希望我们怎么回答?