2011-07-01 8 views
8

Con las funciones puras de Python, puede pasar argumentos por orden (por ejemplo, foo(1, 2, 3)) o por nombre (por ejemplo, foo(a=1, c=3, b=2)).Detectar el argumento que pasa la convención de una función de biblioteca C

Funciones definidas en los módulos C can use either convention. No puede decir range(stop=10, step=2), y así es con la mayoría de las funciones implementadas utilizando la interfaz C, pero no todas.

¿Hay alguna manera de determinar el argumento que pasa convención de una función dentro de Python?

Respuesta

4

Parece ser un open bug: simplemente no hay forma de saber esto. Además, el problema depende de la implementación: su código podría funcionar en (por ejemplo) PyPy, aunque no puedo confirmarlo.

Los desarrolladores en la página de errores no están seguros de si cambiar el estilo de la documentación o la implementación, pero me da la impresión de que no es un problema apremiante para ellos de ninguna manera.

+0

En PyPy puede (las funciones y las funciones integradas son menos diferentes), pero puede sorprender que por ejemplo los argumentos de palabras clave se llamen "x" "y" y "paso" :) En general, mejor no hacer eso – fijal

Cuestiones relacionadas