- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
尽管关于 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,因为:
但是,您当然可以同时运行 python2 和 python3 运行时并使用某种 (IPC) 消息在它们之间传递。
对于 C 和 C++,您可以在同一进程中运行它们,这很好。顺便说一下,您也可以在同一进程中运行 python 和 C(或 C++)。
我能想到的允许您在同一个进程中运行 python2 和 python3 的唯一方法是将两个运行时嵌入到同一个进程中,但是,它们很可能会破坏彼此的全局变量并造成混淆。
关于python - 为什么不能将 Python2 与 Python3 混用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44406320/
我是一名优秀的程序员,十分优秀!