UnboundLocalError:局部变量' long'在分配之前引用

时间:2016-07-12 08:41:53

标签: python-2.7

我尝试以与python 2和3兼容的方式使用long,而不使用任何外部库(例如six)。

这是重现错误UnboundLocalError: local variable 'long' referenced before assignment的代码的最小版本:

import sys

def f():
    if sys.version_info.major == 3:
        long = int
    print(long('42'))

f() # error

但是,当我在函数外部使用代码时,它会正确打印出42

import sys

if sys.version_info.major == 3:
    long = int
print(long('42'))

错误只发生在python 2中(我使用2.7.11)。我想了解为什么会发生这种情况,以及如何在不使用外部库的情况下优雅地修复它。

谢谢!

0 个答案:

没有答案