I thought I understood self on some pretty decent level. But I came across this:
    for f in flags:
        if f not in flagMap:
            raise error.Error('bad debug flag %s' % (f,))
        self._flags = self._flags | flagMap[f]
        self('debug category \'%s\' enabled' % f)
What does self(...) do?
