问题描述
我编写了函数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
程序退出时,它将运行传递给函数的所有其他方法。
1楼
您正在调用主函数中的函数并传递结果,而不是传递可调用对象。 删除调用括号:
input_gather("y", "n", None, agree_caesar_is_bad, disagree_caesar_is_bad, None, answer)