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.