Przejdź do zawartości

Zanurkuj w Pythonie/Potęga introspekcji - podsumowanie

Z Wikibooks, biblioteki wolnych podręczników.

Podsumowanie

[edytuj]

Program apihelper.py i jego wyjście powinno teraz nabrać sensu.

def info(object, spacing=10, collapse=1):
    u"""Wypisuje metody i ich notki dokumentacyjne.

    Argumentem może być moduł, klasa, lista, słownik, czy też łańcuch znaków."""
    methodList = [e for e in dir(object) if callable(getattr(object, e))]
    processFunc = collapse and (lambda s: " ".join(s.split())) or (lambda s: s)
    print "\n".join(["%s %s" %
                    (method.ljust(spacing),
                     processFunc(unicode(getattr(object, method).__doc__)))
                    for method in methodList])

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

A z tutaj mamy przykład wyjścia, które otrzymujemy z programu apihelper.py:

>>> from apihelper import info
>>> li = []
>>> info(li)
append     L.append(object) -- append object to end
count      L.count(value) -> integer -- return number of occurrences of value
extend     L.extend(iterable) -- extend list by appending elements from the iterable
index      L.index(value, [start, [stop]]) -> integer -- return first index 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(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*; cmp(x, y) -> -1, 0, 1 append

Zanim przejdziemy do następnego rozdziału, upewnijmy się, że nie mamy problemów z wykonywaniem poniższych czynności: