>>102453495
It's very clear guido didn't understand scoping when he implemented it, or at least chose interpreter simplicity over footgun protection.
Due to not having to declare variables (which is annoying due to typos), you have the local and global keywords
for loops will not create a new scope, the loop counter will stay a variable
here, the default parameter will be a global variable
def fun(listparam=[]):
pass