我正在寻找一种方法来做到这一点,而无需检查所使用的 Python 版本。
请参阅如何编写与 Python 2 和 Python 3 兼容的异常重新引发代码?有关此的详细信息,因为此问题扩展了该问题。
基本上,我可以将其概括为“如果基于方法的异常引发基于语言的异常怎么办?”
根据Python try...except comma vs 'as' in except,以下显示了 Python 3 和 Python 2 的正确语法:
蟒蛇 3:
except MyError as e
Python 2,对于 2.6+ 版本:
except MyError as e
#OR#
except MyError, e
Python 2.5-:
except MyError, e
一点背景:
我有一个棘手的情况,脚本需要在许多古老的 Linux 机器上运行,其中将使用各种不同的 Python 版本,包括 Python 2.5。
不幸的是,我必须将它作为一个大小有限的文件分发,这对我可以进行多少导入设置了一些限制。
此外,我对其中一个可能误报其版本的情况感兴趣,或者对无需检查版本即可使用的代码感兴趣。当然,这可以解决。