2015-12-06 2 views
-1

Я здесь новый, но я думал, что кто-то может помочь мне с чем-то, над чем я работал некоторое время.Объект типа 'int' не имеет len

Таким образом, я работал над повторной выемкой рыбы на исходном тексте Toontown Fellowship, но через некоторое время я оказался с ошибкой. Код предоставляется вместе с изображением Traceback.

for genus, speciesList in __fishDict.items(): 
    for species in range(len(speciesList)): 
     __totalNumFish += 1 
     speciesDesc = speciesList[species] 
     rarity = speciesDesc[RARITY_INDEX] 
     zoneList = speciesDesc[ZONE_LIST_INDEX] 
     for zoneIndex in range(len(zoneList)): 
      zone = zoneList[zoneIndex] 
      effectiveRarity = getEffectiveRarity(rarity, zoneIndex) 
      if zone == Anywhere: 
       for rodIndex, rarityDict in __anywhereDict.items(): 
        if canBeCaughtByRod(genus, species, rodIndex): 
         fishList = rarityDict.setdefault(effectiveRarity, []) 
         fishList.append((genus, species)) 

И Traceback происходит на линии 785 Object of type int has no len

Любая помощь с корректировкой это было бы весьма признателен! (Ах да, и это произошло, когда я пытался добавить новый род к списку рыбы.)

+0

Линия 785 не означает для нас особого значения. – keyser

+0

Подсказка: добавьте 'print (type (zoneList), repr (zoneList))' прямо перед циклом 'for'. – DSM

+0

Поскольку 'speciesList' и' zoneList' имеют 'List' в своих именах, я думаю, что это должны быть списки, которых они не являются, очевидно. Предполагая это, я думаю, что использование 'len()' верное, но вы должны проверить, откуда эти переменные, поскольку это 'int', а не 'list'. – albert

ответ

1

Вы не можете использовать len(zoneList) когда zoneList в питона int.
Вместо этого используйте len(str(zoneList)), если вы хотите количество цифр.

+0

Спасибо. Это решило ошибку Traceback на строке 785. Теперь на первой строке появилась новая ошибка: tuple index out the range, но я увижу, не могу ли я понять, как это исправить. –

+0

Как я уже говорил в своем комментарии выше, вы должны принять некоторые соображения относительно причины ошибки. Была ли ошибка в вашем коде или были ли вы ошибочными типами данных? Если второй случай истинен, вы должны проверить _where_, вы получили данные из ... – albert

+0

А, я вижу. ВидList создается из кортежа над ним под названием __fishDict, который, в свою очередь, создает еще одну вещь, называемую speciesDesc. ZoneList создается из видаDesc, используя ZONE_LIST_INDEX (который поступает из ToontownGlobals) –

Смежные вопросы