gpt4 book ai didi

python - 为什么不能将 Python2 与 Python3 混用?

转载 作者:太空宇宙 更新时间:2023-11-04 00:35:00 24 4
gpt4 key购买 nike

尽管关于 Python2 和 Python3 的所有内容都已经说过和写过,但我一直无法确定为什么开发人员无法混合使用 Python2 和 Python3 代码。这肯定是有原因的吧?

例如,在 Fortran 中,许多版本彼此不兼容,但它们仍然可以在同一个项目中愉快地共存。这同样适用于 C 和 C++:一些 C 代码与 C++ 不兼容,但编译器能够使用文件扩展名识别正确的语言。为什么没有为 Python3 选择这种方法有具体原因吗?也就是说,让 Python3 模块由 .py3 扩展名(或 shebang 注释)标识,并对 .py 和 .py3 代码使用一个解释器?

编辑:

已经有一个名为 Why is Python 3 not backwards compatible? 的问题,但这个问题是不同的。我知道 Python 3 引入了新功能并因此破坏了向后兼容性。这仍然并不意味着 Python 2 和 3 不能像 C 和 C++ 那样共存。

最佳答案

不能在同一个项目中混用 python2 和 python3,因为:

  1. 口译员各不相同。您正在为 python2 或 python3 运行解释器。我不知道当前有任何解释器可以动态选择 python2 或 python3 运行时。
  2. 语法(略)不同。
  3. 类型不同。

但是,您当然可以同时运行 python2 和 python3 运行时并使用某种 (IPC) 消息在它们之间传递。

对于 C 和 C++,您可以在同一进程中运行它们,这很好。顺便说一下,您也可以在同一进程中运行 python 和 C(或 C++)。

我能想到的允许您在同一个进程中运行 python2 和 python3 的唯一方法是将两个运行时嵌入到同一个进程中,但是,它们很可能会破坏彼此的全局变量并造成混淆。

关于python - 为什么不能将 Python2 与 Python3 混用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44406320/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com