How can Python simulate pointers given that it does not have traditional pointers like PHP or C++?

How can Python simulate pointers given that it does not have traditional pointers like PHP or C++?

Hi Keerti,

You can’t achieve the desired behavior by modifying only that line. However, you can simulate python pointers using a list.

Here’s how:

a = [1]
b = a
a[0] = 2
print(b[0])

In this example, a is a reference to a list. When you assign b = a, both a and b point to the same list object in memory.

Modifying a[0] will also update b[0] because both variables reference the same list.

You can use a dictionary to simulate python pointers. By assigning a dictionary reference to both variables, changes to one key will be reflected when accessed through the other.

a = {'value': 1}
b = a
a['value'] = 2
print(b['value'])

In this approach, both a and b point to the same dictionary object. Modifying the value inside the dictionary with a[‘value’] = 2 updates the same value when accessed via b.

Another option is to use a custom class to represent the reference behavior. This allows you to create a “pointer” that reflects changes when accessed from different variables.

class Pointer:
def __init__(self, value):
self.value = value
a = Pointer(1)
b = a
a.value = 2
print(b.value)

Here, the custom Pointer class acts as a reference container. When a is assigned to b, both variables point to the same instance of the Pointer class.

Modifying a.value reflects the change in b.value, mimicking python pointers behavior.