O que é um ponteiro em Python?

O ponteiro no Python é denominado como uma variável apontando para o endereço de memória de outra variável. O ponteiro aponta para o endereço dessa variável da qual o endereço é fornecido. Em palavras simples, o ponteiro mantém um endereço de memória.

No exemplo abaixo, atribuímos “a” um valor inteiro 2 e o imprimimos. Da mesma forma, atribuímos o valor da string “b” e também o imprimimos. Abaixo, vimos os únicos tipos de cadeia e número inteiro; em python, existem mais tipos como lista, conjunto, tuplas, dicionário, etc. é um objeto

Sintaxe do ponteiro no Python

>>> variable name = value;

Exemplo 1

>> a = 2
>>> a
>> 2

Exemplo - 2

>>> b = “Bob”
>>> b
>>> Bob

Como criar ponteiros em Python?

Abaixo está um exemplo de criação de ponteiros com a função isinstance () para provar que é um tipo de objeto. Veremos todos os tipos de dados possíveis no Python com a função isinstance (). Dessa forma, você aprenderá como declarar todos os tipos de dados no Python também.

Código:

// assigning an integer value
a = 2
print(a)
// checking if integer is an object or not
print(isinstance(a, object))
// assigning a string value
b = "Bob"
print(b)
// checking if string is an object or not
print(isinstance(b, object))
// assigning a list value
inputList = (1, 2, 3) print(inputList)
// checking if list is an object or not
print(isinstance(inputList, object))
//assigning a set value
inputSet = (10, 20, 30)
print(inputSet)
// checking if set is an object or not
print(isinstance(inputSet, object))
// assigning a tuple value
inputTuple = (100, 200, 300)
print(inputTuple)
//checking if tuple object or not
print(isinstance(inputTuple, object))
// assigning a dictionary value
inputDict = (
"0": 1922,
"1": "BMW",
"2": 100
)
print(inputDict)
//checking if dictionary is an object or not
print(isinstance(inputDict, object))

Resultado:

Agora que sabemos que cada variável declarada é um objeto, cada função isinstance () retorna True, o que significa que é um objeto. Agora podemos dizer que tudo é um objeto em Python. Vamos aprender sobre objetos mutáveis ​​de todos os objetos. Lembre-se de que lista, conjunto e dicionário são mutáveis. Resto não são objetos mutáveis. Objetos mutáveis ​​podem ser alterados, enquanto objetos imutáveis ​​não podem ser alterados.

Exemplo

Em objetos imutáveis ​​como uma String, podemos fazer um anexo como mencionado abaixo

str = "Python Programming "
print(str)
print(id(str))
str += "Language"
print(str)
print(id(str))

e funciona, mas agora, se tentarmos acrescentar algo como

str = "Python Programming "
print(str)
str(5) = “S”
print(id(str))
str += "Language"
print(str)
print(id(str))

para a string emite um erro imutável; para modificar, precisamos usar a função append ().

Usos do ponteiro em Python

Ponteiros são usados ​​em C e C ++ amplamente. Com os ponteiros, a alocação dinâmica de memória é possível. Os ponteiros podem ser declarados como variáveis ​​que mantêm o endereço de memória de outra variável.

Operações aritméticas de ponteiros

Os ponteiros têm quatro operadores aritméticos.

  • Operador de incremento: ++
  • Operador de redução: -
  • Operador de adição: +
  • Operador de subtração: -

As operações aritméticas são realizadas com o uso de operadores aritméticos. Nos programas abaixo, usamos a função id () que retorna o endereço de memória do objeto.

Operador de incremento: incrementa o valor em 1

Código:

#using the incrementing operator
x = 10
print("x = ", x, "\n")
print("Address of x", id(x))
x += 1
print("Now x = ", x, "\n")
print(x)
#using the id() function to get the memory address
print("Address of x", id(x))

Resultado:

Operador de decréscimo: diminui o valor em 1

#using the decrementing operator
x = 10
print("x = ", x, "\n")
print(id(x))
x -= 1
print("Now x = ", x, "\n")
print(x)
#using the id() function to get the memory address
print("Address of x", id(x))

Resultado:

Operador de adição: executa adição de dois operandos

#using the addition operator
#using the addition operator
x = 10
y = 20
print("x = ", x, "\n")
print("y = ", y, "\n")
print("Address of x", id(x))
x = y + 3
print("x = y + 3 \n")
print("Now x = ", x, "\n")
# using the id() function to get the memory address
print("Address of x", id(x))

Resultado:

Operador de subtração: executa subtração de dois operandos

Código:

#using the subtraction operator
x = 10
y = 5
print("x = ", x, "\n")
print("y = ", y, "\n")
print("Address of x", id(x))
x = y - 3
print("x = y - 3 \n")
print("Now x = ", x, "\n")
print("Address of x", id(x))

Resultado:

Vejamos agora um exemplo usando " is ", que retorna true se os objetos de ambos os objetos tiverem o mesmo endereço de memória

1. Exemplo

Código:

Neste exemplo, estamos declarando duas variáveis ​​x e y, em que y é igual a x, que agora aponta para o mesmo endereço de memória que o de x.

x = 100
print("x =", x)
print("address of x", id(x))
y = x
print("y =", y)
print("address of y ", id(y))

Resultado:

2. Exemplo

Neste exemplo, estamos declarando duas variáveis ​​x e y, onde y é igual a x, o que é verdadeiro, mas quando incrementamos o valor de y em um, a saída passa a ser falsa.

x = 100
y = x
print(y is x)
y = y + 1
print(y is x)

Resultado:

Nos dois exemplos acima, vimos isso.

Ponteiros para Ponteiros

1. Exemplo

def fun(a, b, c, d):
print(a, b, c, d)
x = (101, 102, 103, 104)
fun(*x)

Resultado:

2. Exemplo

def fun (a, b, c, d):
print(a, b, c, d)
y = ('a':'I', 'b':'like', 'c':'python', 'd':'programming')
fun(**y)

Resultado:

3. Exemplo

Colocando o Exemplo Um e o Exemplo Dois juntos

def fun (a, b, c, d):
print(a)
print(b)
print(c)
print(d)
x = (100, 200, 300, 400)
fun(*x)
y = ('a':'I', 'b':'like', 'c':'python', 'd':'programming')
fun(**y)

Resultado:

Conclusão

Espero que este artigo tenha sido bom o suficiente para fazer você entender melhor os tópicos. Além disso, o artigo é auto-explicativo para ser entendido como todos os elementos-chave foram explicados da melhor maneira possível.

Artigo recomendado

Este foi um guia para ponteiros em Python. Aqui discutimos o que são ponteiros em Python? diferentes tipos de ponteiros e operações aritméticas, juntamente com exemplos. Você também pode consultar nossos outros artigos sugeridos para saber mais -

  1. Operadores de comparação Python
  2. Operadores booleanos em Python
  3. Vantagens do Python
  4. Padrões de estrelas em Python
  5. Introdução aos ponteiros em C ++
  6. Visão geral dos ponteiros em C #
  7. Diferentes operações relacionadas a Tuplas
  8. Exemplos para implementar operadores de comparação no PowerShell