我正在研究一个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'>。
我在这里错过了什么吗?
编辑:看来我的扩展程序代码中出现了问题。逐一拉出那些线条揭示了罪魁祸首。我怀疑引用计数错误。谢谢你的回复。答案 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