67 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			67 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								title: Docstring
							 | 
						||
| 
								 | 
							
								localeTitle: Docstring
							 | 
						||
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								## Docstring
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Docstring es una forma en que los desarrolladores pueden comunicar el propósito, los parámetros, los requisitos y el uso de una función en Python a otros desarrolladores. Permite la facilidad de mantenimiento y comprensión del código.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								A diferencia de los comentarios de código fuente convencionales, la cadena de documentación debe describir lo que La función hace, no cómo.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Un ejemplo similar a Docstring es @Javadoc en Java.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Docstring se escribe como un comentario de varias líneas justo después del encabezado de la declaración en Python. Hay 4 partes diferentes en una cadena de documentación:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								1.  Tipo de entrada, y tipo de salida
							 | 
						||
| 
								 | 
							
								    *   La entrada / salida puede ser `obj, list, bool, int, str, float`
							 | 
						||
| 
								 | 
							
								2.  Descripción de la función
							 | 
						||
| 
								 | 
							
								    *   Breve, pero completa descripción de lo que hace su función
							 | 
						||
| 
								 | 
							
								3.  Requerimientos
							 | 
						||
| 
								 | 
							
								    *   Esto es leído por un humano, por lo que no tiene que ser un código
							 | 
						||
| 
								 | 
							
								4.  Casos de prueba (normalmente 2-3)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								El formato general se detalla a continuación.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Formato de Docstring
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```python
							 | 
						||
| 
								 | 
							
								def my_examplefunc(input_type1, input_type2): 
							 | 
						||
| 
								 | 
							
								  '''(input_type1, input_type2) -> output_type        # Your first line will be the input/output. Remember the space around the arrow! 
							 | 
						||
| 
								 | 
							
								  Here is a description of my example function        # Your second line will be the description 
							 | 
						||
| 
								 | 
							
								  REQ: type(input_type1) == list                      # Your next line (or lines) will be the requirements for the input of your function 
							 | 
						||
| 
								 | 
							
								  REQ: type(input_type2) == str 
							 | 
						||
| 
								 | 
							
								  >>> my_example_func([2, 3], "Hello World!")         # After the requirements come test cases 
							 | 
						||
| 
								 | 
							
								  [2, 3] "Hello World" 
							 | 
						||
| 
								 | 
							
								  >>> my_example_func([7, 2], "Another test case")    # Your first line of the test case is an example of the usage, prefaced by >>> 
							 | 
						||
| 
								 | 
							
								  [7, 2] "Another test case"                          # Your second line of the test case is the output 
							 | 
						||
| 
								 | 
							
								  >>> my_example_func([5, 6], "Last test case") 
							 | 
						||
| 
								 | 
							
								  [5, 6] "Last test case" 
							 | 
						||
| 
								 | 
							
								  ''' 
							 | 
						||
| 
								 | 
							
								  # Your code goes here, underneath the Docstring 
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								La cadena documental se entiende mejor con ejemplos, así que eche un vistazo al programa de ejemplo a continuación, en el que el programa muestra Verdadero si un número es menor que 5, y Falso si un número es mayor que 5.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Ejemplo 1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```python
							 | 
						||
| 
								 | 
							
								def is_less_than_five(some_number): 
							 | 
						||
| 
								 | 
							
								  '''(int) -> bool 
							 | 
						||
| 
								 | 
							
								  Returns True if the given number is less than 5, and False is the given number is greater than 5. 
							 | 
						||
| 
								 | 
							
								  REQ: some_number != 5 
							 | 
						||
| 
								 | 
							
								  >>> is_less_than_five(4) 
							 | 
						||
| 
								 | 
							
								  True 
							 | 
						||
| 
								 | 
							
								  >>> is_less_than_five(6) 
							 | 
						||
| 
								 | 
							
								  False 
							 | 
						||
| 
								 | 
							
								  >>> is_less_than_five(100000) 
							 | 
						||
| 
								 | 
							
								  False 
							 | 
						||
| 
								 | 
							
								  ''' 
							 | 
						||
| 
								 | 
							
								  # Your code goes here 
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Algunos enlaces útiles:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Numpy y Google Docstrings son dos enfoques de uso común:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								*   Google: http://sphinxcontrib-napoleon.readthedocs.io/en/latest/example\_google.html
							 | 
						||
| 
								 | 
							
								*   Numpy: http://sphinxcontrib-napoleon.readthedocs.io/en/latest/example\_numpy.html También, consulte algunos buenos comentarios antiguos de PEP: https://www.python.org/dev/peps/pep-0257/
							 |