奇妙さ:print "hi"
いくつかの実験の結果、以下のコードで役に立たない行 ( 、またはx = 1
) ANYWHERE を挿入すると、正しく機能するという結論に達しました。
どうしたの?この奇妙な動作を引き起こしているこのコードを Python がどのように処理しているかを理解したいと思います。
いくつかのコンテキスト: wxpython で gui を書いています。私はこの関数 (以下を参照) を持っており、ツールを押すとアイコンが変更されます (ツールを削除し、別のアイコンで再度追加することにより)。
以下に示すコードにより、最初はボタンのアイコンが正しく切り替わり、2 回目はツールバーが無効になっているように見えます。コードの問題だと思っていたので、print ステートメントを挿入したところ、驚いたことに問題が解決されました。
def configure_itunes_button(self):
'''
Configures the itunes button to either sync or unsync depending on whether itunes is currently synced
'''
if self.iTunesTool:
id = self.iTunesTool.GetId()
self.toolbar.DeleteTool(id)
else:
id = self.toolbar.GetToolsCount() + 1
if self._is_itunes_synced_locally:
self.iTunesTool = self.toolbar.AddSimpleTool(id, wx.Bitmap('images\\iTunes.png'), "Sync iTunes Library", "Sync all iTunes music and playlists to Sookbox.")
else:
self.iTunesTool = self.toolbar.AddSimpleTool(id, wx.Bitmap('images\\trash.gif'), "Stop syncing iTunes Library", "Stop syncing all iTunes music and playlists to Sookbox.")
self.Bind(wx.EVT_TOOL, self.onITunesSync, self.iTunesTool)
self.toolbar.Realize()