title: Python - Timeit within a class
body: <p>I'm having some real trouble with timing a function from within an instance of a class. I'm not sure I'm going about it the right way (never used timeIt before) and I tried a few variations of the second argument importing things, but no luck. Here's a silly example of what I'm doing:</p>
  
  <pre><code>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()
  </code></pre>
  
  <p>Which, when ran, complains about self.</p>
  
  <pre><code>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 "&lt;timeit-src&gt;", line 6, in inner
      self.square(self.x, self.y)
  NameError: global name 'self' is not defined
  </code></pre>
  
  <p>This has to do with TimeIt creating a little virtual environment to run the function in but what do I have to pass to the second argument to make it all happy?</p>