python作为解释器的唯一目的是什么?

2024-09-26 17:37:33 发布

您现在位置:Python中文网/ 问答频道 /正文

python作为解释器的唯一目的到底是什么。在

  1. 它不提供可执行文件(商业软件开发人员如何使用它?)

  2. 如果代码的任何部分有bug,它不会显示出来,除非python 去那条线。在大型项目中,代码的所有部分 不会每次都被翻译,所以,会有很多 项目中隐藏的错误

  3. 每个系统都应该安装一个python来运行那些软件的。。。

我使用的是py2exe,我发现自己很困惑只查看可执行文件大小(太大)。在


Tags: 项目代码目的可执行文件软件开发人员系统错误
3条回答

你提出了一些不同的问题,下面是一些回答:

1)从技术上讲,Python不会被解释(通常)-它被编译成字节码,字节码在虚拟机上运行。在

所以Python不提供可执行文件,因为它运行字节码,而不是机器代码。 您也可以问问Java为什么不生成可执行文件。 虚拟机的标准优势是适用的:一个重要的优点是简化的跨平台开发体验。在

如果不希望源代码可用,可以只分发.pyc(编译字节码)文件。See this reference。在

2)这里,你在谈论动态语言和静态语言。当然,这是有权衡的。正如您所提到的,动态语言的一个缺点是,您会得到更多的运行时错误,而不是编译时错误。在

当然,也有相应的优势。我将为您介绍一些讨论双方的资源:

3)非常正确。正如您需要安装javavm来运行Java,perl来运行perl,等等

关于你的最后一点: 在虚拟机中运行的整个想法是,你可以安装这个虚拟机一次,然后运行许多不同的应用程序。通过将整个VM与每个应用程序捆绑在一起(比如py2exe),您就违背了这个概念。所以是的,你必须按尺寸来支付成本。在

python的唯一目的是提供一种漂亮的编程语言。在

你的第1点和第3点是相似的,答案是专业程序员使用py2exe/pyinstaller等来捆绑和分发他们的程序,在框架/库的情况下,他们甚至不需要这样做。在

你的点数(2)对于静态编译的语言也是有效的,在C++中正确编译的东西并不意味着它不会在运行时崩溃或者业务逻辑是正确的,你无论如何都需要测试代码的每一个部分,因此,在良好的UNITSATE和功能测试下,Python与其他语言在寻找bug方面是一致的,因为它不需要搞笑,充满活力意味着更好的生产力。在

国际海事组织

首先,回答你的问题。在

  1. 他们可以将其用于系统中不介意源代码可见的部分(例如扩展),也可以打开应用程序的源代码。他们也可以用它来开发他们作为服务提供的东西的后端服务(例如Youtube)。他们也可以把它用于他们不打算发布的内部工具(比如谷歌)。

  2. 这就是为什么你需要写测试,锻炼纪律和定期测量测试覆盖率。你牺牲了编译器检查事物的能力,牺牲了一些速度来获得优势,我在下面详细介绍了这些。

  3. 是的,但是将Python与你的应用捆绑在一起并不难。整个解释器+库没有那么大。Python几乎是当今大多数UNIX环境中的标准。这通常不是一个实际问题。Java(比如说)也存在同样的问题(您需要安装JVM)。

py2exe将所有模块打包成一个可执行文件。它会很大。如果你想做精简的编译程序,不要使用Python。错配。在

现在,解释一下为什么要解释。在

  1. 更快的开发时间。程序员的时间比计算机时间贵,所以我们应该对此进行优化。在
  2. 没有编译周期。非常容易进行增量更改和检查。快速周转。在
  3. 内省和动态类型允许某些类型的编码,这在某些编译语言(如C)中是不可能的
  4. 跨平台。如果您的平台有一个解释器,即使程序是在另一个平台上编写的,它也会在那里运行。在

相关问题 更多 >

    热门问题