On May 24, 12:23 pm, "silverburgh.me...@gmail.com"
<silverburgh.me...@gmail.comwrote:
On May 24, 12:41 pm, 7stud <bbxx789_0...@yahoo.comwrote:
Actually, you can do this:
class Dog(object):
def aFunction(self):
result = 20 + 2
def run(self):
#do stuff
aFunction()
#do other stuff
import timeit
t = timeit.Timer("d.aFunction()", "from __main__ import Dog; d =
Dog()")
print t.timeit()
Since you only want to time aFunction(), you can call it directly.
Can 't = timeit.Timer()' run inside a thread?
And I have multiple threads running this 't = timeit.Time()' function?
Are you seeing an error like this:
Exception in thread Thread-1:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/2.4//lib/
python2.4/threading.py", line 442, in __bootstrap
self.run()
File "test1.py", line 34, in run
print t.timeit()
File "/Library/Frameworks/Python.framework/Versions/2.4//lib/
python2.4/timeit.py", line 161, in timeit
timing = self.inner(it, self.timer)
File "<timeit-src>", line 3, in inner
TypeError: __init__() takes exactly 2 arguments (1 given)
That was produced by this code:
----------
import time
import timeit
import threading
t = timeit.Timer("inst.f()", "from __main__ import Dog; inst=Dog()")
print t
class Dog(threading.Thread):
def __init__(self, id):
self.id = id
threading.Thread.__init__(self)
def f(self):
result = 20 + 3
def run(self):
print t
print t.timeit()
d = Dog("d")
d.start()
--------------
I can't explain that error. This works:
--------------
import time
import timeit
import threading
t = timeit.Timer("inst.f()", "from __main__ import Dog; inst=Dog()")
class Dog(threading.Thread):
def f(self):
result = 20 + 3
def run(self):
print t.timeit()
d = Dog()
d.start()
-----------