私はこれに完全に困惑しています:
私は次のPythonコードを持っています:
def remove(self, widgets):
for widget in widgets:
widget_found = False
for widget_sig in self.widgets:
if widget_sig.id == widget:
#remove all objects from selected widget
widget_found = True
to_remove = widget_sig.objs
for obj in to_remove:
#objs are all intances of oo_canvas classes
obj.destroy()
self._build(widget, obj)
if not widget_found:
#if we iterated through the entire list and still couldn't find anything
raise mockingbird_errs.InternalMockingbirdError("The requested widget was not registered with this builder: "+str(widget))
これはかなり簡単なはずです。重要なのは、to_removeを正しく繰り返すことは決してないということです。何らかの理由で、他のすべての要素をスキップします。さらに厄介なのは、forループの前後にto_removeの長さを出力させると、254と127が出力されるということです。私の知る限り、リストを反復処理することは、他のすべての要素を削除することを含みません。
私は簡単な何かが欠けていますか?一体何が起こっているのですか?