根据可用模块定义功能

时间:2017-06-30 08:16:52

标签: python-2.7 largenumber gmpy

我有一个我需要计算的函数,它必须使用相当大的数字(类似于200 ^ 200)。我发现使用Decimal包可以很好地处理它,但功能很慢。因此我安装了GMPY2包,并且能够将时间减少大约七分之一。但是我需要将功能分发给其他人,并不是每个人都有GMPY2模块。如何根据可用模块更改功能的定义。我可以这样做:

try:
    import gmpy2
    def function_with_big_numbers()
exceptImportError:
    import decimal
    def function_with_big_numbers()

还是会引起问题?有没有更好的方法

1 个答案:

答案 0 :(得分:1)

这会有效,但我会按照

的方式做点什么
try:
    import gmpy2
except:
    gmpy2 = None

def function_with_big_numbers():
    if gmpy2 is None:
        # put code executed when gpy2 is not available
        return
    # put code executed when gpy2 is available

这种方式使其更清洁,更易于管理