如何解决设计一个函数,使其可以直接用作 CLI使用 click和 python 模块
我正在寻找一种设计,通过该设计可以将相同的 Python 函数暴露给其他模块以及使用 click 模块创建的 CLI。
我看到很多帖子都提供了相同的内容,但我的要求几乎没有什么不同。
@click.command()
@click.option('--times',default=10)
def print_hello(times):
_print_hello(times)
def _print_hello(times):
pass
这里打印的主要逻辑写在_print_hello函数中,这很好。
如果我想从其他模块中定义的函数中调用 print_hello 方法,那么这对调用者来说将是一项繁忙的任务。
我们有什么简单的方法或好的模式,因为我有 20 多个 CLI API,我还需要将它们公开为 python API?
解决方法
你的意思是,如何让一个函数接受一个或多个参数?给每个参数一个默认值:
def print_func(param1,param2=None,param3=None,param4=None,param5=None):
print(param1,param2,param3,param4,param5)
print_func()
print_func(1)
print_func(1,2)
print_func(1,2,3,4,5)
输出:
Traceback (most recent call last):
File "<stdin>",line 1,in <module>
TypeError: print_func() missing 1 required positional argument: 'param1'
1 None None None None
1 2 None None None
1 2 3 4 5
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。