我有一个简单的函数,当我在我的 Jython 解释器中手动输入它时可以工作,但是当我尝试将代码作为函数运行时,对 len() 的调用失败。
def calculateChecksum(self, command):
sum = 0
for b in range(len(command)):
sum = sum + command[b-1]
mod = sum % 64
checkbyte = mod & (0xFF)
checksum = checkbyte | 0x80
where command 是一个字节的 jarray.array (为什么我不使用内置的数组类型?我问你:这有关系吗?jarray.array 适用于其他一切,它在某些情况下显然有效,见下文)
>>> testarray
array([55, 57, 51], byte)
>>> len(testarray)
3
>>> stage.calculateChecksum(stage, testarray)
Traceback (innermost last):
File "<console>", line 1, in ?
File "....py", line 75, in calculateChecksum
AttributeError: __len__
所以我认为可以肯定地说这个数组实现了 len(),但我不知道为什么这似乎并不总是正确的。知道这里发生了什么吗?