检查isinstance会产生奇怪的错误

时间:2012-06-09 13:29:23

标签: python

当我在我的一个函数中对某个对象执行isinstance调用时,我收到一个奇怪的错误:

def subtotals_to_decimal_string(obj):
    """
    Converts subtotals to decimal strings
    """
    if isinstance(obj, list):
        for cr in obj:
            sub = cr['subtotal']
            cr['subtotal'] = Decimal(str(sub)).quantize(Decimal('0.01')).to_eng_string()
        return obj

我收到的错误与此帖中的错误类似:http://bit.ly/MmkObr

奇怪的是我能够在一个单独的python文件中执行此调用。这是怎么回事?

提前致谢!

1 个答案:

答案 0 :(得分:3)

最有可能的是,你有一个名为list的全局变量,它隐藏了内置名称list。不要使用内置类的名称作为变量名(甚至更好,根本没有内置名称)。