Angenommen, eine KlasseWie kann der Quellcode eines Objekts abgerufen werden?
class Book(object):
def __init__(self, title, author):
self.title = title
self.author = author
def get_entry(self):
return self.__dict__
eine Instanz erstellen:
>>> book = Book('Think Python', 'Allen')
>>> vars(book)
{'title': 'Think Python', 'author': 'Allen'}
ich einen weiteren Schritt gehen, um die Anweisung von Objektbuch abzurufen. Der Ausgang I Absicht ist {'title': 'Think Python', 'author': 'Allen','get_entry':statements}
So importieren ich inspect
Informationen des lebenden Objekt berichten
>>> import inspect
>>> inspect.getsource(book)
Fehler
TypeError: <__main__.Book object at 0x10f3a0908> is not a module, class, method, function, traceback, frame, or code object
jedoch zu bekommen, Python Dokumente angeben ‚Bringen Sie den Text der Quelle Code für ein Objekt. Das Argument kann ein Modul, eine Klasse, eine Methode, eine Funktion, ein Traceback, ein Rahmen oder ein Codeobjekt sein. Der Quellcode wird als einzelne Zeichenfolge zurückgegeben. Ein OSError wird ausgelöst, wenn der Quellcode nicht abgerufen werden kann. ' 29.12. inspect — Inspect live objects — Python 3.6.3 documentation Was ist hier falsch?
Sie müssen 'getsource' die Klasse selbst übergeben und keine Instanz. 'inspect.getsource (Book)' würde funktionieren. – nutmeg64