2012-09-04 10 views
13

Próbuję dowiedzieć się, jakie metody i atrybuty pochodzą z matką wszystkich klas wyjątków w python: klasa wyjątków. Jednak mam trochę problemów, ponieważ oficjalna dokumentacja nie wydaje się dostarczać go.Gdzie mogę znaleźć metody i atrybuty klas wbudowanych Pythona?

Najlepsze, co mogłem znaleźć, to: http://docs.python.org/library/exceptions.html, ale zawiera tylko listę wbudowanych wyjątków.

Co się dzieje? Przywykłem do dokumentacji Javy i PHP gdzie wszystko jest ustanowione na stole :(

+2

Wszystko * jest * ułożone na stole w Pythonie. Klasa 'BaseException' jest udokumentowana na tej stronie, czego brakuje? –

+1

Jeśli potrzebujesz bezwzględnego czystego kodu, kod C dla podstawowej klasy wyjątków to: http://hg.python.org/cpython/file/tip/Objects/exceptions.c Wątpię, czy to ci pomoże . :-P –

+8

@MartijnPieters Brakuje części, w której jest ona dokumentowana w spójny, łatwy w obsłudze, nieuczestniczony sposób. Z tabelami nazw metod, argumentów, znaczeń zwracanych wartości. Oraz tabele pól, typy pól, znaczenia pól. Brakuje mu części, w której dokumentacja jest dobra. Też to tęsknię. Bardzo tego brakuje. :( –

Odpowiedz

15

Wbudowana funkcja dir dadzą listę nazw zawierających metody i atrybuty obiektu.

>>>print dir(Exception) 
['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribut 
e__', '__getitem__', '__getslice__', '__hash__', '__init__', '__new__', '__reduc 
e__', '__reduce_ex__', '__repr__', '__setattr__', '__setstate__', '__sizeof__', 
'__str__', '__subclasshook__', '__unicode__', 'args', 'message'] 

można również uzyskać pomoc przy użyciu metody help... help(Exception)

+0

To jest bardzo pomocne, dziękuję – mjgpy3

+21

To nie jest * dokumentacja * dla klasy wyjątków.Python powinien mieć podstawowe tabele metod i atrybutów jak java .W tym momencie musisz przeczytać 5-stronicowy esej omawiający 73 rzeczy które 't obchodzi – jarmod

5

jest tylko jeden interesujący atrybut BaseException, a to args jest to udokumentowane, więc nie ma problemu

Na stronie BaseException nie ma żadnych metod innych niż specjalne (__), których nie należy wywoływać bezpośrednio. Spośród nich __str__ dokumentuje zdaniu

Jeśli str() lub unicode() nazywa na wystąpienie tej klasy, reprezentacja argumentu (ów) instancji są zwracane lub pusty łańcuch, gdy nie było argumenty.

[Jest jeszcze jeden atrybut publicznego message, ale jeśli masz dostęp że dostaniesz DeprecationWarning. Przestarzałe atrybuty nie zawsze są udokumentowane, ponieważ nie powinno się ich używać w nowym kodzie.]

+0

'__unicode __()' jest udokumentowane metodą 'unicode()' (w Pythonie 2.x). :-) –

Powiązane problemy