【发布时间】:2019-05-06 15:27:07
【问题描述】:
我的问题如下。我的库中有一些功能:
def some_func(arg1=1):
pass
我想以三种方式使用它:
在其他 python 脚本中使用 import 语句:
import my_library
my_library.some_func()
使用 CLI 界面点击显示。
@click.group()
@click.option('--arg1', default=1)
def some_func(arg1):
pass
使用带有 Flask 的 Web 界面公开。
@app.route('/endpoint', defaults={'arg1': 1})
def some_func(arg1):
pass
但是如何在不复制太多代码的情况下有效地构建它呢?
是否可以合并所有三个?我尝试了以下(变体),但失败了:
@click.group()
@click.option('--arg1', default=1)
@app.route('/endpoint', defaults={'arg1': 1})
def some_func(arg1=1):
pass
或者我真的需要上面定义的 3 个不同的功能吗?
如果是这样,我应该如何处理默认值?
在所有地方访问全局变量是最好的方法吗?
【问题讨论】:
-
你应该使用三个入口点,并且使用共享常量作为默认值并没有错。
-
谢谢。但在我看来,使用常量作为默认值似乎很丑陋,但这也许是因为我个人还没有看到“野外”。因此,我尝试找出是否有更好的方法来创建此类应用程序。但我很难找到任何相关信息。
标签: python flask interface command-line-interface python-click