У меня есть реальная проблема с синхронизацией функции из экземпляра класса. Я не уверен, что поступлю правильно (никогда раньше не использовал timeIt), и я попробовал несколько вариантов импорта второго аргумента, но не повезло. Вот глупый пример того, что я делаю:
import timeit
class TimedClass():
def __init__(self):
self.x = 13
self.y = 15
t = timeit.Timer("self.square(self.x, self.y)")
try:
t.timeit()
except:
t.print_exc()
def square(self, _x, _y):
print _x**_y
myTimedClass = TimedClass()
Который, когда бежит, жалуется на себя.
Traceback (most recent call last):
File "timeItTest.py", line 9, in __init__
t.timeit()
File "C:\Python26\lib\timeit.py", line 193, in timeit
timing = self.inner(it, self.timer)
File "<timeit-src>", line 6, in inner
self.square(self.x, self.y)
NameError: global name 'self' is not defined
Это связано с тем, что TimeIt создает небольшую виртуальную среду для запуска функции, но что мне нужно передать второму аргументу, чтобы все это было счастливым?