2017-02-15 68 views
0

当我读从硬盘文件到一个名为“数据”二元名单,我可以使用下面的代码获取列表的长度:二进制列表我创建的原因“廉政”对象不是可调用

with open("test 18.vf", "rb") as f: 
data = f.read() 
len = len(data) 
print(len) 

以上作品没有错误

但是当我尝试手动创建二进制列表“b”时,“len(b)”导致TypeError。

b = b'\x76\x12\x0A\x08\x00' 
lenofb = len(b) #This line get a TypeError 
print(lenofb) 

类型错误: '诠释' 对象不是可调用

  1. 为什么是 “B” 的整数,导致错误?
  2. 我的方法是让文件的长度正确吗? (我的目的是要搜索“数据”为4个十六进制字节,发现做一些事情的时候,再重复,直到到达长度为“len”。)

PS: 一)我试图缩进2-4行在上面的示例1中,但该帖子仅显示了具有相同缩进的所有4行。如何在帖子中显示Python代码的正确缩进?

b)我刚开始学习Python。

回答

0

您已在代码的早期设置了len = len(data)。这隐藏了len(函数计算的东西的长度)的定义为len(一个int)的正常定义。然后你试图调用这个int,就好像它是一个函数一样。

您应该使用其他名称而不是len作为本地变量。

+0

伊万,你钉了它!有趣的是,口译员如何将我的愚蠢使用“len”标记为“使用保留名称的变量名”作为真正的错误。我将len改为mylen,现在一切正常。我的绿色支票将你的帖子标记为答案。 - - 谢啦! – Raptor88