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

2.8 KiB
Raw Blame History

title localeTitle
Python Mutability and Variable Assignments 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

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