私は、iter関数を持つあらかじめ作られた非標準のPython標準辞書を反復するシステムを設計しています。私はタプルを反復しようとしていますが、この愚かなエラーを続けています。また、このエラーが唯一の原因おそらく入力Pythonはタプルで辞書を繰り返します
TypeError: 'tuple' object cannot be interpreted as an integer
簡単な修正で台無し機能を反転ビットに、半分の時間に発生し、誰もが見つけることができますか?
HERESに関連するコード:私のメインプログラムで
:
for tup in crusherdict.CrusherDict(db2, fields[0]):
log.write("VOTE\t{}\t{}\n".format(tup[0][0], tup[0][1]))
私にITERのエラーを与えて辞書で場所:
def __iter__(self):
for i in range(self.__len__()):
yield self.db.fetch(entryName(self.name,i))
相続人db.fetch:
def fetch(self,key):
return self.cache[key]
およびentr ynameの名前:
def entryName(dict, str):
return (dict, "E", str)
のフルバックトレース:
in <module>
if commands[line[0]](db, tempDict, logFile, line):
in cast
return inq(db, tempDict, logFile, ("INQ", tempDict["voterID"]))
line 100, in inq
for tup in crusherdict.CrusherDict(db3, fields[0]):
crusherdict.py", line 91, in __iter__
for i in range(self.__len__()):
TypeError: 'tuple' object cannot be interpreted as an integer
>>>
これは*関連コード*ではありません。 [mcve]と完全なトレースバックを与えてください。 – jonrsharpe
完全なバックトレースを表示できますか? TypeErrorがどこから来ているのかわかりません。 –
なお、 'self .__ len __()'は書かないでください。 'len(self)'と書くだけで、それは '__len__'の目的です。 – alexis