0

そのため、数か月前に同様の質問をしましたが、以前の質問で適用されたのと同じ規則/法律を適用できないようです。私の名前が示すように、私のPythonの理解は非常に基本的なものなので、なぜ彼のコードが機能しないのか混乱しています...

新しい画面をロードするたびに、古いボックスのセットが消え、新しいボックスだけがそこに残されます。しかし、これは起こりません。実演する写真は次のとおりです。 ここに画像の説明を入力 ここに画像の説明を入力

完全なコードへのリンク。

ただし、問題はコードのこの部分にあると思います。

def deletePanes(self):

    print("delete panes")
    Panes = []
    self.NoOfPanes = 0

Panes = []にあるコードの前のセクションも呼び出しますclass Application():。問題は、2回呼び出している可能性がありますか? これが意味することは、1 つのPanesリストに古いボックスがあり、別のリストにPanes新しいセットがあり、PyGame 画面で描画するときに古いボックスと新しいボックスの両方を描画する可能性があるということです。(完全なコードを見れば、これらすべてがより理にかなっているかもしれません)

事前に助けてくれてありがとう。

4

2 に答える 2

2

電話すると

Panes = []

関数内で、新しいローカル変数Panesを作成し、空のリストに設定します。

グローバル変数の場合は、呼び出す必要があります

Panes[:] = []

クラスにある場合は、電話する必要があります

self.Panes = []
于 2014-01-22T18:43:46.123 に答える
1

Panesはローカル変数であり、 の他の使用の値を変更しませんPanesPanes globalmakeまたはインスタンス変数のいずれかが必要です。参照するコード内の各場所で同じことを行いますPanes

于 2014-01-22T18:42:45.247 に答える