2.9. Resumen

El programa apihelper.py y su salida deberían entenderse ya perfectamente.

Ejemplo 2.31. apihelper.py


def help(object, spacing=10, collapse=1):
    """Print methods and docstrings.
    
    Takes module, class, list, dictionary, or string."""
    methodList = [method for method in dir(object) if callable(getattr(object, method))]
    processFunc = collapse and (lambda s: " ".join(s.split())) or (lambda s: s)
    print "\n".join(["%s %s" %
                      (method.ljust(spacing),
                       processFunc(str(getattr(object, method).__doc__)))
                     for method in methodList])

if __name__ == "__main__":
    print help.__doc__

Ejemplo 2.32. Salida de apihelper.py

>>> from apihelper import help
>>> li = []
>>> help(li)
append     L.append(object) -- append object to end
count      L.count(value) -> integer -- return number of occurrences of value
extend     L.extend(list) -- extend list by appending list elements
index      L.index(value) -> integer -- return index of first occurrence of value
insert     L.insert(index, object) -- insert object before index
pop        L.pop([index]) -> item -- remove and return item at index (default last)
remove     L.remove(value) -- remove first occurrence of value
reverse    L.reverse() -- reverse *IN PLACE*
sort       L.sort([cmpfunc]) -- sort *IN PLACE*; if given, cmpfunc(x, y) -> -1, 0, 1

Antes de sumergirse en el siguiente capítulo, asegúrese de que se siente cómodo haciendo todo esto:

  • Definir y llamar funciones con argumentos opcionales y con nombre.
  • Utilizar str para convertir un valor arbitrario en una representación de cadena.
  • Utilizar getattr para obtener referencias a funciones y otros atributos dinámicamente.
  • Extender la sintaxis de listas por comprensión para hacer filtrado de listas.
  • Reconocer el truco and-or y usarlo sin riesgos.
  • Definir funciones lambda.
  • Asignar funciones a variables y llamar a la función haciendo referencia a la variable. Nunca se remarcará bastante: este modo de pensar es vital para avanzar en la comprensión de Python. Se verán aplicaciones más complejas de este concepto a través de este libro.