在变量中存储函数参数

Storing function parameters within a variable

我正在尝试将参数存储在变量中,以便稍后在函数中使用,例如简单的 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 函数使用它们时仍然可以正确读取?

documentation 在这里,但我认为没有人需要它。

  • 将关键字参数存储为字典:question_details = {"message": "Select an action:", "choices": [...]).
  • 在实际调用中使用double-asterisk关键字参数使用字典:inquirer.select(**question_details).execute().