Em muitos recursos, achei "escopo" e "namespaces" usados de forma intercambiável, o que parece um pouco confuso, pois significa coisas diferentes.
- Escopo define a região do código em que um nome está disponível.
- A regra LEGB define a maneira como os nomes são pesquisados.
- Namespace é um local onde você procura nomes.
Então eu li:
- "os nomes são vinculados a um espaço de nome de acordo com o local onde estão atribuídos ..." (que eu acredito que é o acordo com os escopos no escopo lexical).
- "funções adicionam uma camada extra de namespace aos seus programas" [ ref. ] (eles não adicionam um escopo local extra?)
- "todos os nomes atribuídos dentro de uma definição de função são colocados no escopo local (o espaço para nome associado à chamada de função)."
- "escopo global - ou seja, um espaço para nome no qual vivem as variáveis criadas (atribuídas) no nível superior do arquivo do módulo."
* todas as citações são do aprendizado de python 5a edição ch17
Os namespaces no Python são da maneira que os escopos são implementados? Eles são a mesma coisa? Alguém pode me esclarecer?