[PYTHON] Profil innerhalb einer Methode der Klasse

Hintergrund

Unter http://docs.python.jp/2/library/profile.html dachte ich, ich könnte mit cProfile.run () profilieren und verwendete es in der Methode der Klasse `NameError: name'self 'nicht Ich bekomme einen definierten Fehler.

import cProfile

class MyClass(object):
    def someFunc(self):
        cProfile.run("self.anotherFunc()")

    def anotherFunc(self):
        pass

if __name__ == '__main__':
    m = MyClass()
    m.someFunc()

Ich steckte zweimal fest, also mach dir vor dem dritten eine Notiz.

Lösungen

Verwenden Sie runctx

import cProfile

class MyClass(object):
    def someFunc(self):
        cProfile.runctx("self.anotherFunc()", globals(), locals())

    def anotherFunc(self):
        pass

if __name__ == '__main__':
    m = MyClass()
    m.someFunc()

Ich habe auf http://stackoverflow.com/questions/4492535/profiling-a-method-of-a-class-in-python-using-cprofile verwiesen

Recommended Posts

Profil innerhalb einer Methode der Klasse
Klassenmethode statische Methode
Parallelisierung der Klassenmethode
Verwendung der Methode __call__ in der Python-Klasse
Ordnungsgemäße Verwendung der Instanzmethode und der Klassenmethode
Django: Klasse aus String importieren
Deklarieren Sie die Klasse dynamisch wie einen Abschluss
Ist "destruktive Methode" ein Ruby-Begriff?
[Python] Erbt eine Klasse mit Klassenvariablen
Treffen Sie eine Methode einer Klasseninstanz mit der Python Bottle Web API