×

Pointers in Python

In this tutorial, we will study what pointers are and if they have any utility in python.

Now, let us understand what pointers are

Pointers

Pointers are special variables used to store the addresses of another variable. It is generally used in programming languages such as C and C++. These are very useful but are quite complicated. They are represented using an asterisk ‘*’.

Syntax to declare a pointer in C:

datatype *a1
For Example - int *a1;
		float *b1

The syntax to assign the address of a variable to a pointer is:

datatype a1, *a2;
a2=&a1;
For Example – int a1, *a2;
		  a2=&a1;


Four types of pointers are there in C and C++

  1. Null Pointers
  2. Void Pointer
  3. Dangling pointers
  4. Wild pointers

Pointers in Python

Python does not support pointers.

Keeping python user-friendly has been the main idea behind its development. Python has provided several in-built libraries just to ease the work of users. Adding pointers in python would add to the complexities, which would go against the idea of python development.  Thus, pointers are not supported in python.

Although python does not support pointers explicitly, still, users can get the benefits of pointers in python. There are various ways to put on pointers in python.

We will see two of them here:

  1. Usage of mutable types as pointers
  2. Usage of Python custom objects

By the Usage of mutable types as pointers

void add_one(int *a) {
    *a += 1;
}

In the above snippet of C language, the code receives a pointer to an integer(*a) and then increases the value by 1.

The below code shows the main function to carry out the add_one function operation on an integer.

Pointers in Python

Explanation: In the above code, value = 7654 has been assigned to y, and that value is printed first. Further, this value is incremented by one, and the modified value is printed.

Output:

Pointers in Python

Explanation: Foremost y contains an unmodified value and the second y contains the modified value.

Now, let’s try to achieve the same in python.

Pointers in Python

Explanation: In the above code, a mutable list has been used to do the increment.

In this case, the add_one(x) function accesses the unmodified value i.e., 2337, and increments its value by one.  Finally, we get a modified value at last.

Thus, we have achieved our desired task without using pointers, as in C.

The modification was possible because of the use of the list, which is of mutable data type.

Pointers in Python

This figure shows the output of the above python code.

Explanation: Here,the first line contains the unmodified value, and the second line contains the modified values.

Pointers in Python

Explanation - In the above example, we have used the dictionary named counter, which keeps a record of the overall quantity of function calls. When the function named foo() is called, the counter value increases by 2 because the dictionary is a mutable data type.

Pointers in Python

Explanation: it shows the output of the python code written above.

By the usage of Python custom objects

The dictionary option is a great way to compete with pointers in Python, but sometimes it gets monotonous to recall the key name used. If the dictionary has been used in various parts of the application it gets even more difficult. We can use a custom class instead of a dictionary to overcome this issue.

Pointers in Python

Explanation: The above code expresses a Metrics class that still uses a dictionary to hold the real data, which is in the _metrics member variable. This will give the changeability needed by the user. It is now needed to be able to access these values.

It can be performed through properties:

Pointers in Python

Explanation: The code here is making use of @property. The @property decorator here allows accessing functions - adding and mountains_pictures_served.

Now, we will create an object that is the instance of the pointer class defined above.

Pointers in Python

Explanation: The code written above shows the creation of an object of the pointer.

Here also, the values are getting incremented.

Two new functions have been used:

  1. adding()
  2. mountains_pics()

These two functions are capable of modifying the values in the metrics dict. Now we have created a class that can be modified just like the pointers get modified.

Here, one can access both of these functions adding() and mountains_pic()  to simulate pointers in Python.

Pointers in Python

Explanation: The above code contains the full code of the Metrics class.


Related Topics

File Explorer using Tkinter in Python

File Explorer: Users can control folders and files on a device using an application known as a file manager or file explorer. Customers can access, edit, copy, delete, and start moving files...

3 minutes read.

Python program to find factorial of a given number

Python program to find factorial of a given number Factorial is a non-negative integer. It is the product of all positive integers from 1 to the number we are going to...

3 minutes read.

Python callable() Function

Python callable() Function The callable() function returns a boolean value ‘True’ if the specified object is callable, else it returns False. Syntax callable(object) Parameter Object:  The object parameter represents the value to test if it is callable...

1 minute read.

Python RegEx

Python RegEx (python regular expressions) is a concept of writing and finding expressions in a pool of characters easily. A Regular expression (RegEx) is a set of characters that defines search...

10 minutes read.

Parameter Passing in Python

In Python, when we characterize capabilities with default values for specific boundaries, it is said to have its contentions set as a possibility for the client. Clients can either pass their...

3 minutes read.

Multiple Linear Regression using Python

Linear Regression: Linear regression is a method that models the relationship between a dependent variable and one or more independent variables; in other terms, that models the relationship between a target...

6 minutes read.

How to append an Array in Python

A group of objects kept at adjacent memory regions is known as an array. It is a container with a set capacity for a certain number of things, all of...

7 minutes read.

List Comprehension in Python

Sometimes we need new lists that are completely based on previously existing lists, so to perform this operation successfully, some of the programming languages come with a syntactic construct known...

5 minutes read.

Python any() Function

Python any() Function The any() function in Python returns a boolean value ‘True’ if any element of the iterable is true or if the iterable is empty, else it returns False. Syntax any(iterable) Parameter Iterable: An iterable object (list, tuple, dictionary) Return This...

1 minute read.

How to reverse a string in Python

In Python language, we have a few ways to reverse a string. In this article, let us discuss these ways and understand the suitability of these ways in different scenarios...

5 minutes read.

Python variance() function

Variance The variance is the average of the square deviations from the mean. The variance will measure the spread of the dataset from its mean or median value. The greater the...

4 minutes read.

Read numpy array in Python

Numpy is a numerical python that deals with multidimensional arrays mostly used in storing multiple values. Python's core scientific computing package is called NumPy. This Python library provides multidimensional array...

9 minutes read.

Python e-book free download

Python is a booming language these days. It has many applications for making code easier; it is also an open-source language. There are many sources to learn python. In this...

3 minutes read.

OS Module in Python

What is a module? The Modules are the kind of files that contains python statements and definitions. The module is known by the name of the file followed by the suffix...

8 minutes read.

App Config Python

An XML file called App. Config serves as the document for any programme. In other terms, you can modify any configuration inside of it without going to edit the code...

7 minutes read.

Python getattr() function

Python getattr() function The getattr() function in Python returns the value of the named attribute for the given object. Syntax getattr(object, name[, default]) Parameter object: It is a required parameter which represents an object. name: This parameter represents the...

1 minute read.

Python lock

Before understanding the concept of Python-lock we need to understand what kind if condition we require to implement the locks in Python. Let us start with multithreading and its implementation...

5 minutes read.

Python Pascal Triangle

Python Pascal Triangle Pascal triangle A pascal triangle is a number pattern of triangular array of the binomial coefficients. For designing a pascal triangle, we write a function in the program which...

5 minutes read.

Difference between Perl and Python

Control and presently utilized for a great many undertakings, including framework organization, web improvement, network programming, and GUI improvement, and the sky is the limit from there. About Perl? Perl is a...

4 minutes read.

Python program to find Fibonacci series

Python program to find Fibonacci series A Fibonacci series is an integer sequence of 0, 1, 1, 2, 3, 5, 8.... We can identify the Fibonacci series as any number sequence...

2 minutes read.