Issue 22051: Turtledemo: stop reloading demos (original) (raw)

I propose to remove the following two lines with 'reload' from turtledemo.main.py.

from importlib import reload ... ... def loadfile(self, filename): ... reload(self.module)

Reloading modules each time a demo is run allows and even encourages module level code that initializes variables (other than classes) and has system side-effects. In particular, some such calls created the test problems reported in #21882. Code that needs to be run each time the required main() is called should be inside main. Indeed, reforming the two_canvases demo (see patch for #21882) made two_canvases work properly within the demo driver.

With the demos patched, I tried them all twice after commenting out the reload. I did not notice any difference, except possibly faster response.

I already edited the help text to tell users to initialize in main().