微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

设计一个函数,使其可以直接用作 CLI使用 click和 python 模块

如何解决设计一个函数,使其可以直接用作 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 举报,一经查实,本站将立刻删除。