2016-02-28 4 views
-4

Im пытается играть в эту игру, и я открыть все файлы .bat и файл виртуального .bat говорит, что это .....TypeError: «Поплавок» объект не имеет атрибута «__getitem__» Ошибка

File "toontown\toonbase\ToonBase.py", line 78, in __init__ 
    res = ratios[nativeIndex + 1][0] 
TypeError: 'float' object has no attribute '__getitem__' 

Может ли кто-нибудь помочь мне исправить это? Спасибо за ваши ответы

спасибо всем за ответы, это код для ToonBase.py

width = float(res[0]) 
      height = float(res[1]) 
      ratio = round(width/height, 2) 
      self.resDict.setdefault(ratio, []).append(res) 

Я также обнаружил, плыви немного в код им жаль им не эксперт в этом.

ratios = sorted(self.resDict.keys(), reverse=False) 
       nativeIndex = ratios.index(self.nativeRatio) 
       res = ratios[nativeIndex + 1][0] 

Это код, упомянутый в предыдущем сообщении. Еще раз спасибо за все ваши ответы.

+1

Пожалуйста, объясните, как это JavaScript. – PHPglue

+0

Infact это не javascript, а python –

+1

Для того чтобы добраться до источника вашей ошибки, вам нужно будет опубликовать код в 'ToonBase.py'. Но кажется, что либо 'ratios', либо' ratios [nativeIndex + 1] 'имеет тип' float' и, следовательно, не реализует метод '__getitem__', который используется для оператора' [] ' – schwobaseggl

ответ

0

Хорошо, уйдя от кода, который вы опубликовали, вот что я смог сделать.

width = float(res[0]) 
height = float(res[1]) 
ratio = round(width/height, 2) 
self.resDict.setdefault(ratio, []).append(res) 
# resDict is a dictionary of float -> list 

Тогда у вас есть:

ratios = sorted(self.resDict.keys(), reverse=False) 
# ratios is a list of resDict keys (float) 
nativeIndex = ratios.index(self.nativeRatio) 
res = ratios[nativeIndex + 1][0] 
# ratios[nativeIndex + 1] is a resDict key (float) 

Вы пытаетесь индексировать значение с плавающей точкой. Я подозреваю, что вы пытаетесь индексировать словарь с этим ключом.

selectedKey = ratios[nativeIndex + 1] 
res = self.resDict[selectedKey][0]