2017-02-15 25 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

相關問題