奇怪的是:经过一些实验,我得出结论,在下面的代码中添加一个无用的行 ( print "hi"
, 或x = 1
) ANYWHERE 可以使其正常工作。
这是怎么回事?我很想了解 Python 如何处理导致这种奇怪行为的代码。
一些上下文:我正在用 wxpython 编写一个 gui。我有这个功能(见下文),它会导致工具在按下时更改图标(通过删除工具并将其添加回不同的图标)。
下面显示的代码导致按钮第一次正确切换图标,然后工具栏似乎第二次被禁用。我认为这是代码的问题,所以我输入了一个打印语句,令我惊讶的是,它解决了这个问题。
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()