如果我错了,请纠正我,但点击装饰器似乎掩盖了函数的默认值和构造。从 REPL 调用包装的 from 不会立即以与 REPL 相同的方式工作。例如,从 dask 分布式中查看:
@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):
是否有一些简单的模式可以获取该函数及其所有默认值?
最佳答案
据我推测,唯一的选择是 this issue ,是为了
调用底层函数,例如
main.callback(*args)
。那么您就缺少点击界面中的默认参数。通过
click.testing.CliRunner().invoke(main, ['--host', '127.0.0.1'], catch_exceptions=False) 等方式使用点击测试界面
.
我认为从我的角度来看,选项 1 是我们能做的最好的;默认参数只需手动完成。我也很好奇是否有更好的替代方案。
关于python - 如何从 python 中调用 python click ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49843017/