Welcome, guest | Sign In | My Account | Store | Cart
    import types
    
    def freeVar(val):
      def nested():
        return val
      return nested.__closure__[0]
    
    def nested(outer, innerName, **freeVars):
      if isinstance(outer, (types.FunctionType, types.MethodType)):
        outer = outer.func_code
      for const in outer.co_consts:
        if isinstance(const, types.CodeType) and const.co_name == innerName:
          return types.FunctionType(const, globals(), None, None, tuple(
              freeVar(freeVars[name]) for name in const.co_freevars))

History