我会使用该try
声明。这是一个经常使用的成语。你的sys
版本对于 python3.3 也是错误的:
>>> if sys.version_info.major>=2 and sys.version_info.minor>=7:
... from unittest import TestCase
... else:
... from unittest2 import TestCase
...
Traceback (most recent call last):
File "<stdin>", line 4, in <module>
ImportError: No module named 'unittest2'
虽然它应该是:
>>> import sys
>>> major, minor = sys.version_info.major, sys.version_info.minor
>>> if (major >= 2 and minor >= 7) or (major >= 3 and minor >= 2):
... from unittest import TestCase
... else:
... from unittest2 import TestCase
...
>>>
这也表明该try
版本在 python 的版本中更加健壮。
当我有一个用 C 编写的模块的“加速”版本时,我经常使用该try
变体,在文件末尾我放了一个:
try:
from _accelerated import *
except ImportError:
pass
用加速的覆盖python实现。