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

68 lines
2.8 KiB
Markdown
Raw Normal View History

---
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
> > > \`