Quando criamos uma variável dentro da definição de uma função (como a função setup()
, por exemplo), dizemos que a variável tem escopo local, isto significa que somente o código dentro da função reconhece aquele nome e enxerga os valores a ela atríbuidos.
Os parâmetros (que recebem os valores, ou argumentos, usados na chamada de uma função), são declarados no cabeçalho da definição da função, e são também nomes no escopo local (da função).
def olho(x, y, tamanho):
# tamanho é um parâmetro, só é conhecido aqui, como uma variável local.
metade = tamanho/2 # e metade é uma variável local.
noStroke()
fill(255)
ellipse(x, y, tamanho, metade)
fill(0)
ellipse(x, y, metade-2, metade-2)
Tradicionalmente criadas no início do sketch, e fora de qualquer função (incluindo setup()
e draw()
) as variáveis globais são visíveis por qualquer parte do código.
Para se criar uma variável global quando se está dentro de uma função (ou para poder alterar a atribição de uma variável global dentro de uma função) usamos a instrução global
do Python.
y = 100 # y é uma variável global, pode ser usada em qualquer ponto do programa.
def setup():
global x # para criar uma variável global x aqui no setup()
size(200, 200)
x = width / 2
def draw():
global x # necessário para poder alterar a variável global x aqui no draw()
background(0)
circle(x, y, 10) # x e y são variáveis globais
x = x + 1
if x > width:
x = 0
É comum escutarmos que devemos usar variáveis globais com parcimônia, usadas descuidadamente, elas criam o risco de alterarmos inadvertidamente valores em pontos inesperados do programa.
O uso indicriminado de variáveis globais também viola certos princípios de "bom design de sofwtare", como o encapsulamento das funcionalidades em partes independentes. Mas em pequenos sketches você não deve se preocupar muito com isso!
variável Um nome que se refere a um valor.
variável local Uma variável definida dentro de uma função. Uma variável local só pode ser usada dentro da sua função.
variável global Variável definida fora de uma função. As variáveis globais podem ser acessadas de qualquer função.
instrução global
Instrução que declara um nome de variável global.
Este material é baseado no material do curso https://arteprog.space/programacao-criativa/
Texto e imagens / text and images: CC BY-NC-SA 4.0; Código / code: GNU GPL v3.0 exceto onde explicitamente indicado por questões de compatibilidade.