title: functools.partial on class method
body: <p>I'm trying to define some class methods using another more generic class method as follows:</p>
  
  <pre><code>class RGB(object):
      def __init__(self, red, blue, green):
          super(RGB, self).__init__()
          self._red = red
          self._blue = blue
          self._green = green
  
      def _color(self, type):
          return getattr(self, type)
  
      red = functools.partial(_color, type='_red')
      blue = functools.partial(_color, type='_blue')
      green = functools.partial(_color, type='_green')
  </code></pre>
  
  <p>But when i attempt to invoke any of those methods i get:</p>
  
  <pre><code>rgb = RGB(100, 192, 240)
  print rgb.red()
  TypeError: _color() takes exactly 2 arguments (1 given)
  </code></pre>
  
  <p>I guess self is not passed to <code>_color</code> since <code>rgb.red(rgb)</code> works.</p>