MainLoop() останавливается после закрытия окна:
import wx


class MyFrame(wx.Frame):
def __init__(self):
super().__init__(None, wx.ID_ANY)

App = wx.App()

MyFrame().Show()

App.MainLoop()
print('в данном случае print работает после закрытия окна')


А здесь нет:
 import wx
class MyFrame(wx.Frame):
    def __init__(self):
        super().__init__(None, wx.ID_ANY)
        MyDialog()
class MyDialog(wx.Dialog):
    def __init__(self):
        super().__init__(None, wx.ID_ANY)
        self.Show()
App = wx.App()
MyFrame().Show()
App.MainLoop()
print('в данном случае print не работает после закрытия окна')

Я конечно понимаю, что все решается добавлением этой строки в MyFrame
 self.Bind(wx.EVT_CLOSE, lambda event: App.ExitMainLoop())
, но мне просто интересно почему??? Возможно я что-то не так делаю???