docs: def prt(show=False):
      """
      通过 ``装饰器`` 打印函数 ``参数, 运行时间, 返回值`` 等信息
  
      -  如果 ``prt(show==True)`` 打印函数信息,
      -  否则, 不做任何处理
  
      .. code:: python
  
          @prt(True)
          def say():
              print 'say'
  
          '''
          hello, world
          ----------------------------------------------------------------
          function(say) :
              arguments        = (),{}
              return           = None
              cost             = 0.000015 sec
          ----------------------------------------------------------------
          '''
  
  
          @prt(False)
          def say():
              print 'say'
  
          # 输出 hello, world
  
      -  定义一个全局变量 ``bl`` (调试模式设置为 ``True``, 在生产模式为
         ``False``)
  
      .. note: 调试模式, 设置为 True, 在生产模式时, 设置为False
  
      :param show: ``True/False``
      :type show: bool
      """
  
      def dec(fn):
          @wraps(fn)
          def wrapper(*args, **kwargs):
              result = None
              ts = time.time()
              if show:
                  try:
                      result = fn(*args, **kwargs)
                  except Exception as e:
                      print(e)
                  finally:
                      te = time.time()
                      print("-" * 64)
                      print("function({}) :".format(fn.__name__))
                      print("\t{:<16} = {},{}".format('arguments', args, kwargs))
                      print("\t{:<16} = {}".format('return', result))
                      print("\t{:<16} = {:.6f} sec".format('cost', te - ts))
                      print("-" * 64)
                      return result
              else:
                  return fn(*args, **kwargs)
  
          return wrapper
  
      return dec