如何从python调用python单击?

如何从python调用python单击?,python,command-line-interface,read-eval-print-loop,python-click,Python,Command Line Interface,Read Eval Print Loop,Python Click,如果我错了,请纠正我,但是单击装饰符似乎掩盖了函数的默认值和构造。从REPL调用wrapped from不会立即以与REPL相同的方式工作。例如,请参见dask distributed: @click.option('--bokeh-prefix', type=str, default=None, help="Prefix for the bokeh app") @click.option('--preload', type=str, multiple=True, i

如果我错了,请纠正我,但是单击装饰符似乎掩盖了函数的默认值和构造。从REPL调用wrapped from不会立即以与REPL相同的方式工作。例如,请参见dask distributed:

@click.option('--bokeh-prefix', type=str, default=None,
              help="Prefix for the bokeh app")
@click.option('--preload', type=str, multiple=True, is_eager=True,
              help='Module that should be loaded by each worker process '
                   'like "foo.bar" or "/path/to/foo.py"')
@click.argument('preload_argv', nargs=-1,
                type=click.UNPROCESSED, callback=validate_preload_argv)
def main(scheduler, host, worker_port, listen_address, contact_address,
         nanny_port, nthreads, nprocs, nanny, name,
         memory_limit, pid_file, reconnect, resources, bokeh,
         bokeh_port, local_directory, scheduler_file, interface,
         death_timeout, preload, preload_argv, bokeh_prefix, tls_ca_file,
         tls_cert, tls_key): 

是否有一些简单的模式可以获取函数及其所有默认值

据我推测,唯一的选择是

  • 调用底层函数,如
    main.callback(*args)
    。然后,单击界面中缺少默认参数

  • 要通过类似于
    的方式使用click测试界面,请单击.testing.CliRunner().invoke(main,['--host',127.0.0.1'],catch_exceptions=False)


  • 我想从我的观点来看,选择1是我们能做的最好的选择;默认参数只需手动完成。不过,我也很好奇是否有更好的选择。

    据我推测,唯一的选择是从到

  • 调用底层函数,如
    main.callback(*args)
    。然后,单击界面中缺少默认参数

  • 要通过类似于
    的方式使用click测试界面,请单击.testing.CliRunner().invoke(main,['--host',127.0.0.1'],catch_exceptions=False)

  • 我想从我的观点来看,选择1是我们能做的最好的选择;默认参数只需手动完成。我也很好奇是否有更好的选择