2012-09-04 15 views
13

Estoy tratando de averiguar qué métodos y atributos vienen con la madre de todas las clases de excepciones en python: la clase Exception. Sin embargo, estoy teniendo un problema ya que la documentación oficial no parece proporcionarlo.¿Dónde puedo encontrar los métodos y atributos de las clases incorporadas de python?

Lo mejor que pude encontrar fue esto: http://docs.python.org/library/exceptions.html pero eso solo enumera las excepciones incorporadas.

¿Qué está pasando? Estoy acostumbrado a la documentación de Java y PHP donde todo está puesto sobre la mesa :(

+2

Todo * está * distribuido sobre la mesa con Python. La clase 'BaseException' está documentada en esa página, ¿qué es lo que falta? –

+1

Si necesita la nitidez absoluta, el código C para la clase de excepción base es: http://hg.python.org/cpython/file/tip/Objects/exceptions.c. Sin embargo, dudo que sea útil para usted . :-P –

+8

@MartijnPieters Falta la parte donde está documentado de una manera consistente, fácil de navegar y no conversacional. Con tablas de nombres de métodos, argumentos, significados de los valores de retorno. Y tablas de campos, tipos de campo, significados de campos. Le falta la parte donde la documentación es buena. Me estoy perdiendo eso, también. Lo extraño mucho. :( –

Respuesta

15

La función integrada de dir dará una lista de nombres que comprenden los métodos y atributos de un objeto.

>>>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'] 

también puede obtener ayuda para utilizar el método de help:... help(Exception)

+0

Esto es muy útil, gracias. – mjgpy3

+21

Eso no es * documentación * para la clase Exception. Python debe tener tablas básicas de métodos y atributos como java. Ahora mismo debes leer un ensayo de 5 páginas que discute 73 cosas que no usas. 't care about. – jarmod

5

Sólo hay una cualidad interesante en BaseException, y eso es args Esto está documentado, así que no hay problema

No hay métodos en BaseException que no sean los métodos especiales (__), que no debe llamar directamente. De éstos, __str__ está documentado por la sentencia

Si str() o unicode() se llama en una instancia de esta clase, la representación del argumento (s) a la instancia se devuelven, o la cadena vacía cuando no había argumentos.

[No es un atributo más pública, message, pero si accede a que obtendrá un DeprecationWarning. Los atributos obsoletos no siempre están documentados, ya que no debe usarlos en el nuevo código.]

+0

'__unicode __()' está documentado por el método 'unicode()' (en Python 2.x). :-) –

Cuestiones relacionadas