Prerequisite: Issues with using C code in Python | Set 1
The DoubleArrayType class can handle the situation of Python having different forms like array, numpy array, list, tuple. In this class, a single method
from_param() is defined. This method takes a single parameter and narrow it down to a compatible ctypes object (a pointer to a
ctypes.c_double, in the example).
In the code below, the typename of the parameter is extracted and used to dispatch to a more specialized method. For example, if a list is passed, the typename is list and a method
from_list() is invoked. For lists and tuples, the
from_list() method performs a conversion to a ctypes array object.
Code #1 :
a : <__main__.c_double_Array_3 object at 0x10069cd40> a : 1.0 a : 2.0 a : 3.0
from_array() method extracts the underlying memory pointer and casts it to a ctypes pointer object for array objects.
Code #2 :
arr : array('d', [1.0, 2.0, 3.0]) ptr : 4298687200 <__main__.LP_c_double object at 0x10069cd40>
from_ndarray() shows comparable conversion code for numpy arrays. By defining the DoubleArrayType class and using it in the type signature of
avg(), the function can accept a variety of different array-like inputs.
Code #3 :
Average of list : 2.0 Average of tuple : 2.0 Average of array : 2.0 Average of numpy array : 2.0
To work with a simple C structure, simply define a class that contains the appropriate fields and types as shown in the code below. After defining, the class in type signatures as well as in code that needs to instantiate and work with the structures, can be used.
Code #4 :
pt1 x : 1.0 pt1 y : 2.0 Distance between pt1 and pt2 : 4.242640687119285
- Issues with using C code in Python | Set 1
- Code introspection in Python
- Python code to convert SOP to POS
- Code Golfing in Python
- Python code formatting using Black
- How to run Python code on Google Colaboratory
- Morse Code Translator In Python
- Different Python IDEs and Code Editors
- Hamming Code implementation in Python
- Optimization Tips for Python Code
- Execute a String of Code in Python
- Debugging Python code using breakpoint() and pdb
- Packaging and Publishing Python code
- Understanding Code Reuse and Modularity in Python 3
- Performing Google Search using Python code
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.