为什么我在循环时遇到TypeError?

时间:2010-04-21 18:31:00

标签: python

我正在研究一个Python扩展模块,我的一个小测试脚本正在做一些奇怪的事情,即:

x_max, y_max, z_max = m.size

for x in xrange(x_max):
    for y in xrange(y_max):
        for z in xrange(z_max):
            #do my stuff

没有意义的是循环到达第一个'z'迭代的末尾,然后抛出一个TypeError,声明“需要一个整数”。如果我尝试...除了它周围的TypeError并检查x,y和z的类型,它们都会返回<输入'int'>。

我在这里错过了什么吗?

编辑:看来我的扩展程序代码中出现了问题。逐一拉出那些线条揭示了罪魁祸首。我怀疑引用计数错误。谢谢你的回复。

1 个答案:

答案 0 :(得分:0)

问题在于:x_max, y_max, z_max = m.size

这个语法x_max, y_max, z_max期望在等号的另一端有一个元组/列表,所以除非m.size是一个 - 我认为它是一个整数 - 你需要以下内容:

x_max = y_max = z_max = m.size