我是Python的新手。我有一个方法开始:
def foo(self, list):
length = len(list)
我在其他情况下成功调用了len()
,但在此我得到了:
TypeError: object of type 'type' has no len()
如何说服Python传入的这个对象是一个列表?我错过了什么?
答案 0 :(得分:5)
因为list
是列表类型的名称。
使用其他名称。
def foo(self, lst):
length = len(lst)
并确保您没有像这样致电foo
:
Foo.foo(list)
答案 1 :(得分:5)
你是内置的阴影。您传递给foo
方法的值不是列表对象,而是list
类型,没有任何长度。
答案 2 :(得分:2)
好像你在type()
上呼叫list
这是一种类型本身。不要将名称list
用于列表,因为它已经是内置类型。使用L
或mylist
或其他任何内容都可以使用。