Есть ли способ для меня получить подробную отформатированную информацию о классе Python? - PullRequest
1 голос
/ 09 февраля 2010

Итак, я знаю, что могу использовать dir () для получения информации об участниках класса и т. Д. Мне нужен способ получить красиво отформатированный отчет обо всем, что связано с классом (члены, строки документации, иерархия наследования). и т. д.).

Я хочу иметь возможность запускать это в командной строке, чтобы я мог исследовать код и лучше отлаживать.

Ответы [ 6 ]

5 голосов
/ 09 февраля 2010

Попробуйте позвонить help в своем классе.

4 голосов
/ 09 февраля 2010

Попробуйте это из командной строки:

pydoc modulename
1 голос
/ 09 февраля 2010

Попробуйте средство help(), встроенное в интерпретатор. Э.Г.

class X(object):
    """Docstring for an example class."""
    def __init__(self):
        """Docstring for X.__init__()."""
        pass
    def method1(self, x):
        """Docstring for method1()."""
        print x

>>> help(X)
Help on class X in module __main__:

class X(__builtin__.object)
 |  Docstring for an example class.
 |  
 |  Methods defined here:
 |  
 |  __init__(self)
 |      Docstring for X.__init__().
 |  
 |  method1(self, x)
 |      Docstring for method1().
 |  
 |  ----------------------------------------------------------------------
 |  Data and other attributes defined here:
 |  
 |  __dict__ = <dictproxy object>
 |      dictionary for instance variables (if defined)
 |  
 |  __weakref__ = <attribute '__weakref__' of 'X' objects>
 |      list of weak references to the object (if defined)

Это работает практически для всего, например,

>>> help(dir):
Help on built-in function dir in module __builtin__:

dir(...)
    dir([object]) -> list of strings

    Return an alphabetized list of names comprising (some of) the attributes
    of the given object, and of attributes reachable from it:

    No argument:  the names in the current scope.
    Module object:  the module attributes.
    Type or class object:  its attributes, and recursively the attributes of
        its bases.
    Otherwise:  its attributes, its class's attributes, and recursively the
        attributes of its class's base classes.
0 голосов
/ 09 февраля 2010

Вы хотите самоанализ. Это хорошая статья обо всем этом: http://www.ibm.com/developerworks/library/l-pyint.html

С другой стороны, для отладки вы можете просто использовать Eclipse с плагином Python.

0 голосов
/ 09 февраля 2010

попробуй ipython

0 голосов
/ 09 февраля 2010

Не уверен, что именно вам нужно, но эта глава из книги Марка Пилигрима "Погружение в Python" может работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...