Где можно найти методы и атрибуты встроенных классов python?
Я пытаюсь выяснить, какие методы и атрибуты приходят с матерью всех классов исключений в python: класс Exception. Тем не менее, у меня немного неприятностей, поскольку официальная документация, похоже, не обеспечивает ее.
Лучшее, что я мог найти, это: http://docs.python.org/library/exceptions.html, но в нем перечислены только встроенные исключения.
Что происходит? Я привык к документам Java и PHP, где все заложено в таблице: (
Ответы
Ответ 1
Встроенная функция dir
предоставит список имен, содержащих методы и атрибуты объекта.
>>>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']
Вы также можете получить справку, используя метод help
: help(Exception)
.
Ответ 2
В BaseException
есть только один интересный атрибут, а args
. Это задокументировано, поэтому проблем нет.
На BaseException
нет методов, кроме специальных (__
) методов, которые вы не должны вызывать напрямую. Из них __str__
документируется предложением
Если в экземпляре этого класса вызывается str()
или unicode()
, возвращается представление аргумента (ов) экземпляру или пустая строка, когда аргументов не было.
[Существует еще один открытый атрибут message
, но если вы получите доступ к нему, вы получите DeprecationWarning
. Устаревшие атрибуты не всегда документируются, поскольку вы не должны использовать их в новом коде.]