Я пытаюсь профилировать метод экземпляра, поэтому я сделал что-то вроде:
import cProfile
class Test():
def __init__(self):
pass
def method(self):
cProfile.runctx("self.method_actual()", globals(), locals())
def method_actual(self):
print "Run"
if __name__ == "__main__":
Test().method()
Но теперь проблемы возникают, когда я хочу, чтобы "метод" возвращал значение, которое вычисляется методом "method_actual". Я действительно не хочу дважды называть метод method_actual.
Есть ли другой способ, который может быть потокобезопасным? (В моем приложении данные cProfile сохраняются в файлах данных, названных одним из аргументов, поэтому они не сбрасываются, и я могу их комбинировать позже.)