'float'对象不可迭代

时间:2014-01-20 23:13:44

标签: python sfml

for s in objectList:
    s.ratio = 0.99

我试图迭代python中的Shape对象列表,然后缩小它们。但是,我收到以下错误:

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

我不明白这意味着什么。我没有迭代浮点数...等等:

for s in objectList:
    print(s)

按照我的预期工作。

想法?

编辑:print(type(objectList))打印class 'list'

没有其他错误。

1 个答案:

答案 0 :(得分:3)

ratio必须是2向量:

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

属性的setter看到给定的值不是向量,因此它尝试通过迭代将其转换为1。显然,0.99无法迭代,因此错误。

但是,元组可以迭代。因此,2元组也可以工作,并且会由属性的setter自动转换为2向量:

for s in objectList:
    s.ratio = 0.99, 0.99