尽管已经说过并在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 ++相同的方式共存。
答案 0 :(得分:2)
你不能在同一个项目中混用python2和python3,因为:
但是,您当然可以运行python2和python3运行时,并使用它们之间传递某种(IPC)消息。
对于C和C ++的情况,你可以在同一个进程中运行它们,所以没关系。在本质上,你也可以在同一个进程中运行python和C(或C ++)。
我能想到的唯一方法就是让你在同一个进程中运行python2和python3就可以在同一个进程中嵌入两个运行时,但是,它们很可能会破坏对方的全局变量而感到困惑。
答案 1 :(得分:1)