'Get a hopefully cache constructor'

@classmethod
def _generate_constructor(cls, names):

    cache = cls._constructors
    if (names in cache):
        return cache[names]
    elif (len(cache) > 3):
        cache.clear()
    func = generate_constructor(cls, names)
    cache[names] = func
    return func
