Python 3.4でプログラムを実行したところ、クラッシュしました。スタックトレース:Pythonでの設定に追加するときのKeyError
Traceback (most recent call last):
[...]
File [...], line 176, in manual_setup
gammas.add((name, group_oid))
KeyError: '5733455d-ba37-48c6-b550-8f53b719310c'
ここにコードがあります。変数は、あなたが見ることができるように、ちょうどそのガンマが、set
が何であるかを気にしない:
gammas = set()
for group_oid, name, _ in self.tags:
gammas.add((name, group_oid))
ところで、name
とgroup_oid
は両方str
ですが、彼らは非ハッシュ何かあったとしても、私が取得したいです異なるエラー。
全く別のことが起こっている可能性を排除するわけではありませんが、奇妙な原因を調べる前に私はまだ考えていません。set.add
がおそらくKeyError
を投げている可能性があります。ドキュメンテーションはnoを示唆しています。どのように働くかについての私の知識は、そうすべきではないと言います。これが起こるのを見た人はいますか?
set
が何とかオーバーライドされているかどうかを確認しました。 PyCharmはそれが組み込みのPythonセットだと言います。
私は 'set.add'自体が' KeyError'を発生させてはならないことに同意します。 'self.tags'はどのようなオブジェクトですか?どんな機会でも、怠惰な読み込みエントリのような何かを巧妙に繰り返しますか? –
これをデバッグしたい場合は、空のファイルから始め、このエラーを示す最小限の完全で検証可能な例を作成する必要があります。さもなければ、このバグを再現することはできません。 –
@DanielHepper 'self.tags'はリストです。確かに、もし私がデバッグするときに 'group_oid'と' name'と一緒にタイプを印刷します。 – sudo