0

我正在尝试将参数存储在一个变量中,以便稍后在函数中使用,例如简单的InquirerPy问题。

一个简单的功能性问题可能如下所示:

from InquirerPy.separator import Separator
from InquirerPy import inquirer

inquirer.select(
        message = "Select an action:",
        choices=[
            "Upload",
            "Download",
            Separator(),
            "Other"
        ]
).execute()

但是,由于大部分问题是相同的,我想存储问题和参数,以便以后使用。像这样的东西:

question_details = (
    message = "Select an action:",
    choices=[
        "Upload",
        "Download",
        Separator(),
        "Other"
    ],
    )   
inquirer.select(question_details).execute() # Fails
# SyntaxError: invalid syntax

但这给了我一个语法错误。我想我可以将参数存储为字符串以阻止它们被评估:

question_details = {' \
    message="Select an action:", \
    choices=[ \
        "Upload", \
        "Download", \
        Separator(), \
        "Other" \
    ], \
    '}
inquirer.select(question_details).execute() # Fails
# TypeError: __init__() missing 1 required positional argument: 'choices'

但是,它不会将字符串识别为一组参数并失败。

如何存储这些参数,以便在存储之前不对它们进行评估,但在我的 InquirerPy 函数使用它们时仍然可以正确读取它们?

文档在这里,但我认为没有人会需要它。

4

1 回答 1

1
  • 将关键字参数存储为字典:question_details = {"message": "Select an action:", "choices": [...])。
  • 在实际调用中使用双星号对关键字参数使用字典:inquirer.select(**question_details).execute()。
于 2022-02-07T02:12:13.007 回答