【发布时间】:2018-05-16 16:05:33
【问题描述】:
我有一个类似的脚本:
#myscript.py
import click
def step1(arg1):
print('Step 1: ' + arg1)
def step2(arg2):
print('Step 2: ' + arg2)
def main(arg1, arg2):
step1(arg1)
step2(arg2)
大部分时间我想用myscript arg1 arg2 运行脚本,但有时我可能只想运行一个步骤:例如myscript step1 arg1。 如何设置 click 来执行此操作? 有没有办法让一个默认命令然后是其他可选命令?
这似乎是Click discourages 的一件事:
有时,从另一个命令调用一个命令可能会很有趣。 Click 通常不鼓励这种模式,但尽管如此。
我需要使用这个click.invoke() 模式吗?
【问题讨论】:
-
我相信作者是在劝阻您不要让一个命令使用
subprocess.call或类似命令调用另一个命令。使用命令行标志可以正常工作。此外,添加字符串,尤其是在 print 语句内部,通常被认为是糟糕的风格。对于您的情况,您可以只使用print('Step1:', arg1)
标签: python python-3.x python-click