class bazType(object):
    pass


class barType(object):
    pass


class fooType(object):
    pass


class Foo(object):
    _DEFAULT_TYPE = bazType
_MY_MAP = {'rab': barType, 'oof': fooType}

def __call__(self, bar):
    return self._MY_MAP.get(bar, self._DEFAULT_TYPE)()

@classmethod
def foo(cls, bar):
    return cls._MY_MAP.get(bar, cls._DEFAULT_TYPE)()
print(Foo.foo('rab'))
foo = Foo()
print(foo('baz'))
foo = Foo.foo
print(foo('oof'))
В python, как хранить «константы» для функций только один раз?