code: def create(prefix, params, hint):
          
          current = getattr(_BlockScope._current, "value", None)
          if current is None:
              if prefix is None:
                  if not hasattr(_name.NameManager._current, "value"):
                      _name.NameManager._current.value = _name.NameManager()
                  prefix = _name.NameManager._current.value.get(None, hint) + '_'
              if params is None:
                  params = ParameterDict(prefix)
              else:
                  params = ParameterDict(params.prefix, params)
              return prefix, params
  
          if prefix is None:
              count = current._counter.get(hint, 0)
              prefix = '%s%d_'%(hint, count)
              current._counter[hint] = count + 1
          if params is None:
              parent = current._block.params
              params = ParameterDict(parent.prefix+prefix, parent._shared)
          else:
              params = ParameterDict(params.prefix, params)
          return current._block.prefix+prefix, params
docs: Creates prefix and params for new `Block`.