Почему я не могу найти `len (list)` в Python? - PullRequest
2 голосов
/ 09 марта 2010

Я новичок в Python. У меня есть метод, который начинается:

def foo(self, list):
    length = len(list)

Я звонил len() успешно в других случаях, но здесь я получаю:

TypeError: object of type 'type' has no len()

Как мне убедить Python, что этот переданный объект является списком? Чего мне не хватает?

Ответы [ 3 ]

5 голосов
/ 09 марта 2010

Потому что list - это имя типа списка.

Используйте другое имя.

def foo(self, lst):
    length = len(lst)

И убедитесь, что вы не звонили foo так:

Foo.foo(list)
5 голосов
/ 09 марта 2010

ты слежаешь за встроенным. Значение, которое вы передаете методу foo, является не объектом списка, а типом list, который не имеет никакой длины.

2 голосов
/ 09 марта 2010

Похоже, вы звоните type() на list, который сам является типом. Не используйте имя list для своих списков, потому что это уже встроенный тип. используйте L или mylist или что-то еще, и это должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...