Python para iniciantes: do zero ao primeiro projeto
Aprenda sobre variáveis, loops e funções e crie seu primeiro projeto Python em apenas 2 horas!
Entender como as variáveis são passadas em Python pode ser um pouco complicado, especialmente se você vem de um background em outras linguagens de programação. O conceito de passar uma variável por referência em Python ou por valor é um pouco diferente. Vamos explorar como o Python lida com a passagem de variáveis e como você pode alcançar o efeito de passar por referência.
Em Python, os argumentos são passados por atribuição, o que significa que a função recebe uma referência ao objeto, mas a referência em si é passada por valor. Isso tem duas implicações:
Vamos olhar um exemplo usando uma lista, que é um tipo mutável:
def tentar_mudar_conteudo_da_lista(a_lista):
print('recebido', a_lista)
a_lista.append('quatro')
print('alterado para', a_lista)
lista_externa = ['um', 'dois', 'três']
print('antes, lista_externa =', lista_externa)
tentar_mudar_conteudo_da_lista(lista_externa)
print('depois, lista_externa =', lista_externa)TestarSaída:
antes, lista_externa = ['um', 'dois', 'três']
recebido ['um', 'dois', 'três']
alterado para ['um', 'dois', 'três', 'quatro']
depois, lista_externa = ['um', 'dois', 'três', 'quatro']Como você pode ver, a função foi capaz de modificar o conteúdo de lista_externa porque listas são mutáveis.
Agora, vamos ver o que acontece com strings, que são imutáveis:
def tentar_mudar_referencia_da_string(a_string):
print('recebido', a_string)
a_string = 'Em um reino junto ao mar'
print('definido como', a_string)
string_externa = 'Era muitos e muitos anos atrás'
print('antes, string_externa =', string_externa)
tentar_mudar_referencia_da_string(string_externa)
print('depois, string_externa =', string_externa)TestarSaída:
antes, string_externa = Era muitos e muitos anos atrás
recebido Era muitos e muitos anos atrás
definido como Em um reino junto ao mar
depois, string_externa = Era muitos e muitos anos atrásA função não pôde alterar a string original porque strings são imutáveis.
Se você quiser simular o comportamento de passar uma variável por referência com objetos imutáveis em Python, você pode usar um objeto embrulho como uma lista:
def usar_um_embrulho_para_simular_passagem_por_referencia(coisa_a_mudar):
coisa_a_mudar[0] = 'Alterado'
embrulho = ['Original']
usar_um_embrulho_para_simular_passagem_por_referencia(embrulho)
print(embrulho[0]) # Saída: AlteradoTestarUsando uma lista para embrulhar a string, você pode alterar a lista para refletir as mudanças.
Em Python, passamos variáveis para funções por atribuição, o que significa que a função recebe uma referência ao objeto, não o próprio objeto em si. Podemos alterar objetos mutáveis dentro da função, afetando o objeto original. Entretanto, não podemos alterar objetos imutáveis, mas você pode simular a passagem por referência usando um objeto embrulho mutável. Entender esses conceitos ajudará você a manipular variáveis em Python de forma mais eficaz.
Aprenda sobre variáveis, loops e funções e crie seu primeiro projeto Python em apenas 2 horas!
Saia do zero e analise dados com Python e Pandas neste curso gratuito com certificado!
Aprenda a programar com Python e explore a inteligência artificial! Crie um chatbot prático que interage com seus próprios dados. Comece agora!
Estudo aprofundado do potencial de LLMs multimodais: soluções, mecanismos e geração de valor Os Modelos de Linguagem de Grande Porte (LLMs) multimodais representam uma…
Quando se trata de visualização de dados em Python, o Matplotlib é uma das bibliotecas mais populares e poderosas disponíveis. Para cientistas de dados,…
Ter um portfólio online é essencial para se destacar no mercado. Se você atua na área de dados, tecnologia ou negócios, apresentar seus projetos…
Comente e participe da conversa
Crie sua conta gratuita e compartilhe sua opinião nos comentários.
Entre para a Asimov