3

如何编写使用 Python 的代码,该代码intern将与 Python 2 和 Python 3 兼容(兼容)?有干净的方法吗?

在 Python 2 中,intern 是内置的,所以你使用intern(). 在 Python 3 中,它已移至sys模块,因此您应该使用sys.intern(). 似乎intern()适用于 Python 2 但不适用于 Python 3,sys.intern()适用于 Python 3 但不适用于 Python 2。是否有任何干净的语法适用于 Python 2 和 Python 3,而不使用版本检测(丑陋)?

4

2 回答 2

7
try:
    from sys import intern
except ImportError:
    pass

这应该适用于两者。

six包装:

from six.moves import intern
于 2016-12-05T05:48:22.647 回答
3

一如往常。

try:
  intern
except NameError:
  from sys import intern
于 2016-12-05T05:47:56.463 回答