Torturando Python (Parte 1)
Achei muito interessante e resolvi compartilhar com vocês.
Tudo no Python são objetos. Se você cria uma variável ela vira um objeto. Quer um exemplo? Vamos criar uma lista:
>>> teste = [1, 2, 3, 4, 5]
Na verdade, nesse momento você criou um objeto do tipo lista e associou a variavel “teste”. Você deve estar pensando que não tem nada demais nisso que eu falei escrevi. Mas vamos entender melhor. “teste” é apenas um rotulo da lista [1, 2, 3, 4, 5] se associarmos a lista “teste” a outra variável, teremos o mesmo objeto associado a dois rótulos. Entendeu? Não? Então vamos demonstrar, você vai entender agora. Veja abaixo:
>>> teste2 = teste
O que temos agora? Duas listas? Não! Temos apenas uma lista com dois rótulos diferentes. Tanto a lista “teste” quanto “teste2″, referem-se ao mesmo objeto.
Ai você me pergunta: Tá bom Edgar, isso quer dizer que se eu quizer mudar a posicão 2 da variável “teste” automaticamente a posição 2 da variável “teste2″ vai estar alterado?
Eu respondo: Sim! Encare “teste” e “teste2″ como rótulos do mesmo objeto. Não tem como errar, para exemplificar isso que estou falando vamos fazer o seguinte teste:
>>> teste2
[1, 2, 3, 4, 5]
>>> teste2[0] = 0
>>> teste2
[0, 2, 3, 4, 5]
Até aqui nenhum mistério, não é? Apenas mudamos a posição 0 da lista “teste2″ pelo valor 0. Se você exibir o conteúdo de “teste” na tela, verá que a posição 0 também vai estar alterada!
>>> teste
[0, 2, 3, 4, 5]
Lindo não ??
Esse conceito se propaga por toda a linguagem (pelo menos até onde eu estudei). Inclusive a funções… por exemplo:
>>> def soma(x,y): return x+y
Temos ai uma classica função que retorna a soma de dois argumentos passado por parâmetros na função. Se associarmos uma variável qualquer a função, ambas vão se referir ao mesmo objeto. Exemplo:
>>> adicao = soma
>>> adicao(10,10)
20
O interessante é que esse comportamento deixa para trás linguagens bem tradicionais como Java e C++.
Python, vale a pena estudar!
[...] já acompanha esse blog a algum tempo sabe que eu já estudei um pouco sobre a [...]