在变量中存储函数参数
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().
我正在尝试将参数存储在变量中,以便稍后在函数中使用,例如简单的 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().