我正在使用@ click.command对我的代码做一些事情。但是,在此之前,我尝试了以下代码:
import click
import random
@click.command()
@click.option('--total', default=3, help='Number of vegetables to output.')
def veg(total):
""" Basic method will return a random vegetable"""
for number in range(total):
print(random.choice(['Carrot', 'Potato', 'Turnip', 'Parsnip']))
if __name__ == '__main__':
veg()
print('End function')
我不明白为什么使用veg()函数完成程序后立即停止。我要做什么才能保持程序运行并运行print('End function')
答案 0 :(得分:3)
这是因为默认行为是在独立模式下调用脚本。然后,Click将处理异常并将其转换为错误消息,该函数将永远不会返回,但会关闭解释器。 -docs。
将standalone_mode
设置为False即可更改:
import click
import random
@click.command()
@click.option('--total', default=3, help='Number of vegetables to output.')
def veg(total):
""" Basic method will return a random vegetable"""
for number in range(total):
print(random.choice(['Carrot', 'Potato', 'Turnip', 'Parsnip']))
if __name__ == '__main__':
veg.main(standalone_mode=False)
print('End function')
Turnip
Carrot
Carrot
End function