Yup, relatively new. Only around since python 3.0, for the last 12 years ;-)
Re:JavaScript is Good, Actually
by camel_Snake on Wednesday May 16, 2018 @10:18PM
(#17088199)
nonlocal implies that you are reassigning a variable outside of the local scope.
Your example works because you are mutating an existing object, not reassigning a new one.
It's a disingenuous comparison IMO.
Also nonlocal implies that other variables are local, which is not true. E.g., the following works without "nonlocal" keyword:
(This used to be my workaround.)