3.9. Sommario

Il programma apihelper.py ed il suo output ora dovrebbero essere chiari.

Esempio 3.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__

Esempio 3.32. Output di 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

Prima di immergerci nel prossimo capitolo, assicuratevi di essere a vostro agio con i seguenti argomenti:

  • Definire e chiamare funzioni con argomenti opzionali e con nome
  • Usare str per forzare ogni valore arbitrario in una rappresentazione in stringa
  • Usare getattr per ottenere riferimenti a funzioni ed altri attributi dinamicamente
  • Estendere la sintassi delle list comprehension per filtrare una lista
  • Riconoscere il trucchetto and-or ed usarlo in maniera sicura
  • Definire funzioni lambda
  • Assegnare funzioni a variabili e chiamare la funzione referenziando la variabile. Non posso sottolinearlo abbastanza: questo modo di pensare è vitale per migliorare la vostra comprensione di Python. Vedrete applicazioni più complesse di questo concetto nel corso del libro.