将用户输入与方法Python进行比较的函数问题

问题描述 投票:0回答:1

我编写了函数input_gather来收集用户的响应并将其与各种选项进行比较,然后根据响应运行方法。

def input_gather(option_1, option_2, option_3, method_1, method_2, method_3, choice):
    if choice.lower().strip() == option_1:
        method_1()
        return
    elif choice.lower().strip() == option_2:
        method_2()
        return
    elif choice.lower().strip() == option_3:
        method_3()
        return
    else:
        print("Error. Can you repeat that? ")
    return

每当我调用input_gather函数时,它将最终运行所有其他各种方法。这是一个基于文本的冒险游戏。完整的实现可以在这里看到:

print(intro_to_story)
answer = ""
while (answer.lower().strip() != "y" or answer.lower().strip() != "n"):
    answer = input("y or n >>> \t")
    input_gather("y", "n", None, agree_caesar_is_bad(), disagree_caesar_is_bad(), None, answer)
return

当程序退出时,它将运行传递给函数的所有其他方法。

python
1个回答
4
投票

您正在调用main函数中的函数并传递结果,而不是传递callable。删除调用括号:

input_gather("y", "n", None, agree_caesar_is_bad, disagree_caesar_is_bad, None, answer)
© www.soinside.com 2019 - 2024. All rights reserved.