code: def get_modules(self, memo=None, prefix=""):
          
          if memo is None:
              memo = set()
  
          if self not in memo:
              memo.add(self)
              yield prefix, self
              for k, v in self.__dict__.items():
                  if not isinstance(v, Module):
                      continue
                  name, module = k, v
                  submodule_prefix = "{}/{}".format(prefix,
                                                    name) if prefix != "" else name
                  for m in module.get_modules(memo, submodule_prefix):
                      yield m
docs: Get modules.
  
          This function is internally used as the helper method for other methods.
  
          Args: 
              memo (set, optional): Module set in order to memorize to visit.
              prefix (str, optional): Prefix to a specific parameter name.
  
          Yields:
              `Module`: The module class.