class_docstr: TaskSampler where each task has its own constructor.
  
  Generally, this is used when the different tasks are completely different
  environments.
  
  Args:
      env_constructors (list[Callable[Environment]]): Callables that produce
          environments (for example, environment types).
class_docstr_tok: ["TaskSampler","where","each","task","has","its","own","constructor",".","Generally",",","this","is","used","when","the","different","tasks","are","completely","different","environments",".","Args",":","env_constructors","(","list","[","Callable","[","Environment","]","]",")",":","Callables","that","produce","environments","(","for","example",",","environment","types",")","."]
code: def __init__(self, env_constructors):
      self._env_constructors = env_constructors
  
imports: import abc
  import copy
  import math
  import numpy
  from garage.envs import GymEnv, TaskNameWrapper, TaskOnehotWrapper
  from garage.sampler.env_update import ExistingEnvUpdate, NewEnvUpdate, SetTaskUpdate
label_desc: Use image node_id 1 to create a new ConstructEnvsSampler object from inherited base classes: TaskSampler with example: obj = ConstructEnvsSampler(env_constructors)