gpt4 book ai didi

python - 如何存储单击命令行参数/选项以供引用?

转载 作者:行者123 更新时间:2023-12-01 06:26:34 25 4
gpt4 key购买 nike

新来点击这里,所以我仍在学习。如何将点击参数/选项存储在对象中以供以后在应用程序中引用?我想过只创建一个对象并从设置函数返回它,但它似乎不起作用。这是我所做的:

import click
import sys


class Cfg(object):
component = ""
command = ""
obj = ""


my_cfg = Cfg()


@click.command()
@click.argument('component')
@click.argument("command")
@click.argument("obj")
def set_args(component, command, obj):
cfg = Cfg()
if component != "optdata":
sys.stderr.write("Invalid option")
sys.exit(1)
else:
cfg.component = component
cfg.command = command
cfg.obj = obj

return cfg


if __name__ == "__main__":
app_cfg = Cfg()
app_cfg = set_args() # Never actually completes here.
print("Component = ", app_cfg.component, "Command = ", app_cfg.command, "Obj = ", app_cfg.obj)

core.py 中引发了某种异常,它只执行 sys.exit 并且不会引发任何类型的实际错误。

最佳答案

您的设计违背了“点击”的理念:您不应该将“解析选项”和“完成工作”视为两个单独的步骤:

import click

@click.command()
@click.argument("component", type=click.Choice(["optdata"]))
@click.argument("command")
@click.argument("obj")
def cli(component, command, obj):
print("Component = ", component, "Command = ", command, "Obj = ", obj)
# put your business logic here

if __name__ == "__main__":
cli()

该模式是调用处理命令行选项的函数,然后让该函数调用任何其他功能。

关于python - 如何存储单击命令行参数/选项以供引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60116589/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com