Uso de la palabra clave “global” en Python

| | | | | | | | | | | |

Lo que entiendo al leer la documentación es que Python tiene un espacio de nombres separado para las funciones, y si quiero usar una variable global en esa función, necesito usar global.

Estoy usando Python 2.7 y probé esta pequeña prueba

>>> sub = ["0", "0", "0", "0"] >>> def getJoin(): ... return ".".join(sub) ... >>> getJoin() "0.0.0.0" 

Parece que todo funciona bien incluso sin global. Pude acceder a la variable global sin ningún problema.

¿Me estoy perdiendo algo? Además, lo siguiente es de la documentación de Python:

Los nombres enumerados en una declaración global no deben definirse como parámetros formales o en un destino de control de bucle for, definición de clase, definición de función o declaración de importación.

Si bien los parámetros formales y la definición de clase tienen sentido para mí, no puedo entender la restricción sobre el objetivo de control de bucle y la definición de función.