Краткий ответ : в основном ответ - нет.
Но разве вы не можете найти нужную вам функциональность, используя строки документации?
testmodule.py
""" my module test does x and y
"""
class myclass(object):
...
test.py
import testmodule
print testmodule.__doc__
Длинный ответ:
Вы можете определить свой собственный __repr__
на уровне модуля (просто укажите def __repr__(...
), но тогда вам придется сделать:
import mymodule
print mymodule.__repr__()
чтобы получить желаемую функциональность.
Посмотрите на следующую сессию оболочки Python:
>>> import sys # we import the module
>>> sys.__repr__() # works as usual
"<module 'sys' (built-in)>"
>>> sys.__dict__['__repr__'] # but it's not in the modules __dict__ ?
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: '__repr__'
>>> sys.__class__.__dict__['__repr__'] # __repr__ is provided on the module type as a slot wrapper
<slot wrapper '__repr__' of 'module' objects>
>>> sys.__class__.__dict__['__repr__'](sys) # which we should feed an instance of the module type
"<module 'sys' (built-in)>"
Поэтому я считаю, что проблема заключается в этих объектах-обертках слотов , которые (из того, что можно прочитать по ссылке) имеют результат обхода обычного 'python' способа поиска атрибутов элементов.
Для этих методов класса CPython возвращает C-указатели на соответствующие методы этих объектов (которые затем оборачиваются в объекты-обертки слотов, чтобы их можно было вызывать со стороны Python).