The scoping rules in #4, combined with being able to reference variables before definite assignment, is what leads to the 'variable hoisting' in Javascript.
Is #6 really called 'late binding'? That seems like the wrong term.
I've always heard it used to refer to method dispatch, which that wikipedia article also seems to. However, it seems like the Python spec does use it to refer to when variable values are resolved.
Is #6 really called 'late binding'? That seems like the wrong term.