Isinstance()不起作用

Hou*_*man 0 python

出于某种原因,我无法使用isinstance()来处理Python 2.7.2

def print_lol(the_list, indent=False, level=0):
    for item in the_list:
        if isinstance(item, list):
            print_lol(item, indent, level+1)
        else:
            print(item)
Run Code Online (Sandbox Code Playgroud)

当我编译并运行它时:

>>> list = ["q", "w", ["D", ["E", "I"]]]
>>> print_lol(list)
Run Code Online (Sandbox Code Playgroud)

我收到错误消息:

if isinstance(item, list):
TypeError: isinstance() arg 2 must be a class, type, or tuple of classes and types
Run Code Online (Sandbox Code Playgroud)

我在做什么?

agf*_*agf 8

你已经命名了你的变量list:

>>> list = ["q", "w", ["D", ["E", "I"]]]
Run Code Online (Sandbox Code Playgroud)

这是隐藏内置的list.

重命名变量后,重新启动Python(或IDE).既然你list是一个全局变量,它会坚持不懈.

  • 你也可以手动重新绑定`list`:`import __builtin __; list = __builtin __.list`将在这种情况下完成. (3认同)
  • @torek:那不是理想的方式; 最好的方法是`del list`.然后`list`将回到内置类型. (3认同)