def __getattribute__(self, key): """ Overridden to lazy instantiate subtask when requested """ if key == 'subtask': if not self.__dict__['subtask']: subtask = self.__subtask_class(*self.__subtask_args, \ **self.__subtask_kwargs) self.subtask = subtask return self.__dict__['subtask'] return Task.__getattribute__(self, key)