VARIAVEIS GLOBAIS

DEFINIÇÃO DE VARIÁVEL GLOBAL NO PYTHON
É aquela que não foi definida dentro do escopo da função que a esta utilizando:

In [1]:
variable_global = 0
x = 42
v = 1
print (variable_global)
0

DEFINIÇÃO DE VARIÁVEL LOCAL NO PYTHON
Variavel local é aquela definida dentro da função

In [2]:
def f():    
  v = 10

print (v) #essa variavel só pode ser usada depois de definido dentro da função
1
In [4]:
def func():
    print (x)
 
x = 42
func()
42
In [5]:
def func():
    print (a)  #acessando uma variável antes dela ter sido criada no escopo da função
    a = 1
 
a = 42
func()
---------------------------------------------------------------------------
UnboundLocalError                         Traceback (most recent call last)
<ipython-input-5-6e570eb38272> in <module>()
      4 
      5 a = 42
----> 6 func()

<ipython-input-5-6e570eb38272> in func()
      1 def func():
----> 2     print (a)
      3     a = 1
      4 
      5 a = 42

UnboundLocalError: local variable 'a' referenced before assignment
In [7]:
# Corrigindo
def func():
    a = 1   #variavel local
    print (a)
 
a = 42
func()
1
In [1]:
# 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)
1
42

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

In [15]:
# 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)
1
1
In [3]:
v = 1
def f():
  global v
print (v)
1
In [15]:
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
Out[15]:
42
In [14]:
z = 3
def func():    
 global z    
 z = 1
func()    
print (z)
1

COMO ACESSAR VARIAVEIS LOCAIS EM DIFERENTES FUNÇÕES?

In [23]:
def Luggage():
    mala = []
    levar = input("O que você deseja levar na sua viagem?")
    mala.append(levar)
    return mala

x = Luggage()
print(x)
O que você deseja levar na sua viagem?roupa
['roupa']
In [25]:
#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)
0
0 0 0
1 1 1
(1, 1)
(1, 1)
(1, 1)
In [ ]: