2014-01-20 14 views
1
for s in objectList: 
    s.ratio = 0.99 

Я пытаюсь перебрать список объектов Shape в python и уменьшить их. Однако я получаю следующую ошибку:Объект «float» is not itable

Exception TypeError: "'float' object is not iterable" in 
'pysfml.system.to_vector2f' ignored 

Я не понимаю, что это означает в этом контексте. Я не перебираю поплавки ... и что-то вроде:

for s in objectList: 
    print(s) 

Работы, как и следовало ожидать.

Идеи?

EDIT: print(type(objectList)) печатает class 'list'

Там нет других ошибок.

+0

пожалуйста, напишите полную отслеживающий – mhlester

+0

, что выход 'типа печати (ObjectList)'? Вероятно, он плавает. – bvidal

ответ

3

ratio должен быть 2-вектором:

for s in objectList: 
    s.ratio = sfml.system.Vector2(0.99, 0.99) 

сеттер В отеле видит, что данное значение не является вектор, поэтому он пытается преобразовать его в один итерации его. Очевидно, что 0.99 не может быть повторен, следовательно, ошибка.

Кортежи, однако, можно повторить. Таким образом, 2-кортеж тоже работает, и будет автоматически преобразован в 2-вектор сеттер отеля:

for s in objectList: 
    s.ratio = 0.99, 0.99 
Смежные вопросы