Python 调用 intern() 的 2 和 3 兼容方式

Python 2 and 3 compatible way to call intern()

如何编写使用 Python 的 intern 的代码,使其与 Python 2 和 Python 3 一起工作(兼容)?有干净的方法吗?

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

一如既往。

try:
  intern
except NameError:
  from sys import intern
try:
    from sys import intern
except ImportError:
    pass

这对两者都有效。

six包:

from six.moves import intern