2009-04-03 9 views
114

que tiene la siguiente función:Conseguir la cadena de documentación de una función

def my_func(): 
    """My docstring is both funny and informative""" 
    pass 

¿Cómo consigo el acceso a la cadena de documentación?

+9

cuenta que la ejecución Python con -OO excluye los docstrings. Si tiene la intención de distribuir su código a otros, tenga en cuenta que pueden ejecutarlo de esa manera. Hará que esas personas realmente realmente descontento si su código se basa en docstrings, pero no capta el caso en el que no existen. – DNS

+1

Saludos por eso, esa es información bastante útil. – Teifion

+0

@DNS Gracias, me preguntaba por qué todos mis documentos eran Ninguno. – Timo

Respuesta

157

forma interactiva, se puede visualizar con

help(my_func) 

O de código se puede recuperar con

my_func.__doc__ 
+1

BTW: esta técnica funciona con funciones integradas, así como también con módulos y clases (la ayuda de prueba() con objetos también podría funcionar). ¡Esto hace que tu shell de python sea un shell de ayuda interactiva! –

+2

En el indicador de ipython, ¿puedes hacer my_func? y también mostraría el docstring. – ronak

+3

Python es tan genial – ThorSummoner

56

También puede utilizar inspect.getdoc. Limpia el __doc__ al normalizar las pestañas en espacios y dejó el desplazamiento del cuerpo del documento para eliminar los espacios iniciales comunes.

+1

Ahora eso es exactamente lo que estaba tratando de hacer yo mismo. Gracias por eso. – ereOn

1

En ipython o portátil jupyter, se pueden utilizar todas las modalidades mencionadas anteriormente, pero voy con

my_func? 

o

?my_func 

de resumen rápido de ambos firma del método y la cadena de documentación.

I evitar el uso

my_func?? 

(como comentado por @rohan) para docstring y sólo lo utiliza para comprobar el código fuente

Cuestiones relacionadas