1
resposta

É possível controlar o escopo de uma variável no Python?

Como funciona o escopo de variáveis no Python? Existe Hoisting ou algo similar? Se uma variável é criada dentro de um bloco if, ela continuará existindo após o termino do bloco?

No JavaScript, nas suas últimas versões, conseguimos controlar em qual escopo uma variável deve existir, além de podermos optar por utilizar var, let e const de acordo com a situação.

Exemplo no JavaScript

let nome = "Sheila"
console.log(nome)
// Sheila

if(true) {
    let nome = "Adriano"
    console.log(nome)
    // Adriano
}

console.log(nome)
// Sheila

É possível eu obter o mesmo resultado apresentado acima utilizando o Python?

Exemplo no Python

nome = "Sheila"
print(nome)
# Sheila

if True:

    nome = "Adriano"
    print(nome)
# Adriano

print(nome)
# Adriano
1 resposta

Diz, Adriano. Acredito que em Python o escopo local só existe dentro de funções (def).

No caso acima, para você repetir o mesmo comportamento em Python, teria que usar um def em vez de um if.

nome = 'Sheila'
print(nome)
#Sheila

def escopo_local(nome):
    nome = 'Adriano'
    print(nome)

escopo_local(nome)
#Adriano

print(nome)
#Sheila