def __call__(self, name, space=None, dump=True, pickup=True): try: return getattr(self, name) except AttributeError: value = Function(space, name=name) setattr(self, name, value) value.dump = dump value.pickup = pickup self.fields.append(value) return value