Encontré this buen ejemplo de un Módulo Python C, donde un único entero se pasa como el único argumento. ¿Cómo puedo pasar una lista de Python como argumento?¿Pasar la lista como argumento al módulo Python C?
6
A
Respuesta
15
De http://code.activestate.com/lists/python-list/31841/:
...
char * tok; /* delimiter tokens for strtok */
int cols; /* number of cols to parse, from the left */
int numLines; /* how many lines we passed for parsing */
char * line; /* pointer to the line as a string */
char * token; /* token parsed by strtok */
PyObject * listObj; /* the list of strings */
PyObject * strObj; /* one string in the list */
/* the O! parses for a Python object (listObj) checked
to be of type PyList_Type */
if (! PyArg_ParseTuple(args, "O!is", &PyList_Type, &listObj,
&cols, &tok)) return NULL;
/* get the number of lines passed to us */
numLines = PyList_Size(listObj);
/* should raise an error here. */
if (numLines < 0) return NULL; /* Not a list */
...
/* iterate over items of the list, grabbing strings, and parsing
for numbers */
for (i=0; i<numLines; i++){
/* grab the string object from the next element of the list */
strObj = PyList_GetItem(listObj, i); /* Can't fail */
/* make it a string */
line = PyString_AsString(strObj);
/* now do the parsing */
0
Utilice una de las O
arguments y la sequence protocol.
Cuestiones relacionadas
- 1. Pasar la función como argumento al método Objective-C
- 2. ¿Cómo pasar tuple como argumento en Python?
- 3. Pasar la lista de Python al vector C++ usando Boost.python
- 4. Pasar matriz como argumento
- 5. ¿Cómo pasar la función de miembro como argumento en python?
- 6. Python lista que pasa como argumento
- 7. Pasar un método como argumento
- 8. Pasar un objeto anónimo como argumento en C#
- 9. python argh/argparse: ¿Cómo puedo pasar una lista como un argumento de línea de comandos?
- 10. Pasar una matriz como argumento a una función en C
- 11. pasar matriz de caracteres como argumento
- 12. método de python como argumento
- 13. Cómo pasar ENUM como argumento de función en C
- 14. Pasar una variable como argumento de plantilla
- 15. Cómo pasar una clase parametrizada como argumento
- 16. Al pasar comando Argumento de línea al script de Python dentro de Eclipse (Pydev)
- 17. Al pasar un argumento a una ranura
- 18. ¿Se puede pasar un "tipo" como argumento?
- 19. Buen diseño: cómo pasar InputStreams como argumento?
- 20. pasar un tipo como argumento atributo
- 21. Python - lista de tuplas de función/argumento
- 22. cómo pasar una lista de archivos al método python open()
- 23. Pasar cadenas largas (como argumento) a una aplicación de consola
- 24. Cómo pasar objeto cin o ifstream como la función argumento
- 25. Python funciona como un argumento de función?
- 26. Python: ¿Cómo pasar más de un argumento al getter de la propiedad?
- 27. Problema al importar 'tiempo' como un módulo en python
- 28. defun con una lista como argumento
- 29. tipo de clase C++ como argumento
- 30. Paso C++ puntero como argumento en la función Cython