DEFINIÇÃO DE VARIÁVEL GLOBAL NO PYTHON
É aquela que não foi definida dentro do escopo da função que a esta utilizando:
variable_global = 0
x = 42
v = 1
print (variable_global)
DEFINIÇÃO DE VARIÁVEL LOCAL NO PYTHON
Variavel local é aquela definida dentro da função
def f():
v = 10
print (v) #essa variavel só pode ser usada depois de definido dentro da função
def func():
print (x)
x = 42
func()
def func():
print (a) #acessando uma variável antes dela ter sido criada no escopo da função
a = 1
a = 42
func()
# Corrigindo
def func():
a = 1 #variavel local
print (a)
a = 42
func()
# Imprimendo variavel dentro da função (local) e fora da função (global implicita)
def func():
b = 1
print (b)
b = 42 #variavel global
func()
print (b)
UTILIZANDO UMA VARIÁVEL GLOBAL DENTRO DE UMA FUNÇÃO:
Para se utilizar uma variável global dentro de uma função, é necessário declará-la como global dentro dessa função.:
DEVERÁ SER EVITADO
# Evitar
def func():
global i
i = 1 #altera o valor de uma variável global dentro de uma função,
print (i)
i = 42
func()
print (i)
v = 1
def f():
global v
print (v)
def f():
print (x)
x = 42 #variável global pode ser declarada depois da função que a utilizará, sem que ocorra um erro semelhante ao descrito acima. Isto pode ser vi
x
z = 3
def func():
global z
z = 1
func()
print (z)
COMO ACESSAR VARIAVEIS LOCAIS EM DIFERENTES FUNÇÕES?
def Luggage():
mala = []
levar = input("O que você deseja levar na sua viagem?")
mala.append(levar)
return mala
x = Luggage()
print(x)
#SIMULANDO EXECUÇÃO DE TABELAS DE DECISÕES
def Transicao(Estado,Regra): # Chama proxima tabela
global ProximaTabela
print (Estado,Regra,ProximaTabela)
Estado = 1
Regra = 1
ProximaTabela = 1
print (Estado,Regra,ProximaTabela)
return (Estado,Regra)
def Tabelas (): # Executa proxima tabela
global ProximaTabela
print (ProximaTabela)
global existirtabela
existirtabela = False
print (ProximaTabela)
return (ProximaTabela)
#Inicializar
Estado = 0
Regra = 0
existirtabela = True
ProximaTabela = 0
print (ProximaTabela)
while(existirtabela):
ProximaTabela = Transicao (Estado, Regra)
Tabelas()
print (ProximaTabela)