Cela devrait fonctionner (dans mes tests, c'est le cas, également inclus la sortie). Vous pouvez probablement utiliser __doc__
au lieu de getdoc, mais je l'aime bien, c'est donc exactement ce que j'ai utilisé. De plus, cela ne nécessite pas que vous connaissiez les noms de la classe/méthode/fonction.
Exemples à la fois pour une classe, une méthode et une fonction. Dis moi si ce n'est pas ce que tu cherchais :)
from inspect import *
class MySelfExplaningClass:
"""This is my class document string"""
def __init__(self):
print getdoc(self)
def my_selfexplaining_method(self):
"""This is my method document string"""
print getdoc(getattr(self, getframeinfo(currentframe()).function))
explain = MySelfExplaningClass()
# Output: This is my class document string
explain.my_selfexplaining_method()
# Output: This is my method document string
def my_selfexplaining_function():
"""This is my function document string"""
print getdoc(globals()[getframeinfo(currentframe()).function])
my_selfexplaining_function()
# Output: This is my function document string