我想在某个单例/内存空间中的 python 命令中保存一些用户输入的参数,稍后在另一个命令中访问这些参数。
是否可以使用 python 数据结构,或者我是否需要写入文本文件并读取文件?
谢谢!
如此处文档中所述:https://click.palletsprojects.com/en/8.1.x/complex/ 保持状态/结果/输入: 您可以轻松地写下一个具有所需属性/变量的类,并在“@click.command()”修饰的任何函数中从中实例化一个对象,并使用装饰器将实例化对象保存在点击库的默认上下文对象中: @click.pass_context。然后你可以轻松地将对象作为参数传递给其他命令,然后操作它的属性/变量/等
这里是示例代码:
import click
class testRepo(object):
def __init__(self,experimentID:int):
self.experimentID:int = experimentID
@click.group
@click.pass_context
def cli(ctx,):
ctx.obj = testRepo(1)
#without passed object
@click.command()
@click.option("-n", "--name", prompt="Insert your name:", help="Gets a first name")
def test1(name):
click.echo(f'This Is Test1 - name = {name}')
#with passed object
@click.command()
@click.option("-f", "--family", prompt="Insert your family", help="Gets a family name")
@click.pass_obj
def test2(repo_passed_obj,family):
repo_passed_obj.experimentID = 2
click.echo(str(repo_passed_obj.experimentID))
click.echo(f'This Is Test2 - family name is {family}')
cli.add_command(test1)
cli.add_command(test2)
#Call the group commands cli()
cli()