Uso da palavra-chave “global” em Python

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

O que entendi lendo a documentação é que o Python tem um namespace separado para funções e, se eu quiser usar uma variável global nessa função, preciso usar global.

Estou usando Python 2.7 e fiz este pequeno teste

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

Parece que as coisas estão funcionando bem mesmo sem global. Consegui acessar a variável global sem nenhum problema.

Está faltando alguma coisa? Além disso, segue a documentação do Python:

Os nomes listados em uma instrução global não devem ser definidos como parâmetros formais ou em um destino de controle de loop for, definição de classe, definição de função ou instrução de importação.

Embora os parâmetros formais e a definição de classe façam sentido para mim, não consigo entender a restrição no destino de controle de loop e na definição de função.