別のスクリプトを呼び出す wx GUI を作成しました。スクリプトをインポートし、インポートしたスクリプトで main() を呼び出す関数にボタンをバインドします。すべてが素晴らしく機能しています。
ただし、アクセスしたスクリプトを適切に閉じていません。スクリプトがnumpy配列を操作し、GUIを実行するたびにメモリフットプリントが配列のサイズだけ増加するため、これを知っています。明らかに、コマンド ラインから実行すると、インタプリタが終了し、メモリがクリアされるため、これは問題になりません。
GUIを再起動せずに、スクリプトの以前の実行をメモリからクリアするための適切な方法(正規)は何ですか? GUI または呼び出されたスクリプトでこれを行う必要がありますか?
from myscript import *
....
#Submit / Cancel
submit_button = wx.Button(self.panel, label="Submit")
self.Bind(wx.EVT_BUTTON, lambda e:self.ParseArgs(e, self.args),submit_button)
self.sizer.Add(submit_button, pos=(10,0), flag=wx.LEFT, border=10)
....
def ParseArgs(self, e, arg):
inputarg = []
inputarg.append(arg['input'])
pystretch.main(arg, inputarg)