Python是管理代码语言吗?

5 投票
3 回答
3111 浏览
提问于 2025-04-18 01:58

我在这里可能有点小白,但我对“托管代码”很感兴趣,尤其是因为心脏出血漏洞这个事情。

我最近在HN上看到这样一句话:

C语言和其他没有内存检查的语言不适合用来编写安全代码。说白了就是不适合。它们应该只用来写一个小的核心系统,最好这个系统小到可以通过正式的方法(基于证明的方式)进行检查,而其他所有的,包括所有的应用逻辑,都应该用托管代码来编写(比如C#、Java或者其他的语言,我没有特别的偏好)。

那么,Python算不算是一种托管代码语言,还是说托管代码只是微软的一个术语呢?

3 个回答

0

Python 是一种不受管理的代码。

请参考以下链接:

什么是“受管理”的代码?

5

我发这个是因为我不能评论,但Palak.Maheria说Python是非托管代码的说法应该是不对的。实际上,Python是托管的。你不能在没有一个中介的情况下运行托管代码。现在,很难具体定义什么是中介,但假设你叫汤姆。你开发了一种叫汤姆的编程语言和编译器。为了让Windows理解汤姆的编程语言,你就需要这个中介。

举个例子,在Windows上,你可以直接运行批处理文件和本地的C/C++应用程序。但在Python的情况下,Windows是无法识别的。因此,你需要安装并使用Python解释器,你的Python应用程序会在一个“Python虚拟环境”中运行。这个概念和Java以及.NET是一样的,分别需要JVM和CLR。在这种情况下,Python环境不叫CLR,但它被认为是托管的

顾名思义,托管就是有人或某物在为你管理某些东西。被管理的内容并不重要,重要的是这个概念。

如果我错了,请纠正我。

6

我认为Python是受管理的,因为它在一个虚拟环境中运行,这个环境会帮你处理所有的内存管理,不允许使用指针,还会检查数组的边界等等。

虽然它不是在CLR(公共语言运行库)中运行的(除非你使用IronPython),但它仍然可以算是受管理的。

撰写回答