freeCodeCamp/guide/portuguese/python/mutability-and-variable-ass.../index.md

68 lines
2.8 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

---
title: Python Mutability and Variable Assignments
localeTitle: Mutabilidade de Python e atribuições variáveis
---
> Todo objeto tem uma identidade, um tipo e um valor. A identidade de um objeto nunca muda depois de ter sido criada; você pode pensar nisso como o endereço do objeto na memória. [fonte](https://docs.python.org/3/reference/datamodel.html#data-model)
Depois que um `object` é criado, o tipo e a identidade não podem ser alterados. Se o valor do objeto pode ou não mudar após a criação determina se o objeto é mutável (pode mudar) ou imutável (não pode mudar).
Até agora aprendemos sobre alguns tipos de objetos e suas subclasses: `string` s e objetos numéricos (inteiro, ponto flutuante, complexo e booleano). Todos esses são objetos **imutáveis** .
Esse conceito pode ser confuso no começo porque o que é bom é um objeto se você não puder modificá-lo. O que torna esses objetos utilizáveis ​​é a capacidade de atribuir e reatribuir variáveis. Funções e operadores podem retornar novos objetos que podem ser atribuídos a variáveis.
Usando a [função id integrada](https://docs.python.org/3/library/functions.html#id) , que retorna a identidade de um objeto, podemos ver como isso funciona.
Aqui estão algumas coisas para manter em mente:
* Atribuir uma variável não significa que a _variável_ é o _objeto_ . Usamos uma linguagem muito específica, observando que as _instruções de atribuição_ **associam** um **nome** (identificador) a um _objeto_ . Variáveis podem ser reatribuídas:
\`python
> > > a = 1 # Vincule um a um objeto.
> > > id (a)
> > > 140355241530152
> > > a = 2 # Rebinde um para outro objeto.
> > > id (a)
> > > 140355241530128
> > > \`
* Atribuir duas variáveis diferentes a _objetos imutáveis_ com o mesmo valor pode resultar (não garantido) neles sendo vinculados ao mesmo _objeto_
\`python
> > > a = 1
> > > b = 1
> > > id (a)
> > > 140355241530152
> > > id (b) # Neste caso aeb estão ligados ao mesmo objeto.
> > > 140355241530152
> > > \`
* Atribuir duas variáveis diferentes a _objetos imutáveis_ com valores diferentes sempre resultará na vinculação a _objetos_ diferentes:
\`python
> > > a = 1
> > > b = 2
> > > id (a)
> > > 140355241530152
> > > id (b) # aeb estão ligados a objetos diferentes.
> > > 140355241530128
> > > \`
* A reatribuição de variáveis não altera o objeto original, ele as liga a um objeto diferente.
\`python
> > > a = 1
> > > b = 1
> > > id (a)
> > > 140355241530152
> > > id (b)
> > > 140355241530152
> > > a = 2
> > > id (a) # a é rebatido para um objeto diferente.
> > > 140355241530128
> > > id (b) # b ainda está vinculado ao objeto original.
> > > 140355241530152
> > > \`