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
- Reusable piece of python functionality for wrapping arbitrary blocks of code : Python Context Managers
- Code introspection in Python
- Code Golfing in Python
- Cryptophasia Code in Python
- Python code to convert SOP to POS
- code.compile_command() in Python
- Different Python IDEs and Code Editors
- Change your way to put logic in your code - Python
- Debugging Python code using breakpoint() and pdb
- Packaging and Publishing Python code
- Morse Code Translator In Python
- Python code formatting using Black
- Hamming Code implementation in Python
- How to clone a method code in Python?
- Top 10 Python IDE and Code Editors in 2020
- How to run Python code on Google Colaboratory
- Optimization Tips for Python Code
- Execute a String of Code in Python
- Python | Generate QR Code using pyqrcode module
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. 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.