Decorating Python class methods - how do I pass the instance to the decorator?

You need to make the decorator into a descriptor -- either by ensuring its (meta)class has a __get__ method, or, way simpler, by using a decorator function instead of a decorator class (since functions are already descriptors). E.g.:

def dec_check(f):
  def deco(self):
    print 'In deco'
  return deco

class bar(object):
  def foo(self):
    print 'in'

b = bar()

this prints

In deco

as desired.