Writing the following code in the IDLE module/scriptneditor and then running it (F5) will momentarily freeze without giving the expected warning message ("SyntaxWarning: name 'GLOBAL1' is used prior to global declaration") and it will crash all IDLE windows instances if ran multiple times after it. ------------------ start code snippet: ------------------ GLOBAL1=10 def test_chnge_val_1(a=1): ## global GLOBAL1 b=GLOBAL1 print GLOBAL1, b global GLOBAL1 GLOBAL1 += a b= 100 print GLOBAL1, b if __name__ == '__main__': test_chnge_val_1() ---------------- end code snippet: ---------------- The desired behavior is to not crash but run the code with output and shoot the expected message to STOUT/shell console like regular python shell would. ----- Notes: ----- issue_global_crash.py code-file attached.
I ran IDLE with a console and then ran your script against the latest release. The error message is due to a bug in idle_showwarning. Your script works with the development version, however. This is a duplicate of which was fixed in e9c406a53972, but not yet released.