python - 功能列表
问题描述
我正在尝试制作一个函数列表,我可以从中随机提取其中一个函数。我尝试了几种方法,既试图让它主动选择列表中的第二个函数,又试图让它随机。两者都失败了。
如果列表中包含文本而不是函数,则该列表可以正常工作。
q = [opt1(), opt2(), opt3()]
尽管我没有调用它们,但也会激活该功能。
我该如何让它从列表中随机提取其中一个函数?
import random
def opt1():
print("hej1")
def opt2():
print("hej2")
def opt3():
print("hej3")
q = [opt1(), opt2(), opt3()]
health = "100"
p = "1"
print("you have ", p, " potions")
print("Your health is ", health,)
while True:
a = input("A =")
if a == "add":
health = int(health)
p = int(p) + 1
print("you have ", p, " potions")
print("Your health is ", health,)
a = input("A =")
if a == "fight":
q[1]
#random.choice(q)
解决方案
()
当您将函数添加到列表时,您只需要删除s 即可。所以这条线是问题所在:
q = [opt1(), opt2(), opt3()]
通过包含()
您正在做的事情是调用函数并将函数调用的结果添加到列表中,而不是将函数本身添加到列表中。下面的这段代码应该大致是你需要的
import random
def opt1():
print("hej1")
def opt2():
print("hej2")
def opt3():
print("hej3")
q = [opt1, opt2, opt3]
randomFunction = random.choice (q)
randomFunction()
推荐阅读
- java - 使用 JNDI 使用 Spring Boot 配置多个数据源
- esri-maps - Android ESRI地图如何从屏幕点获取纬度经度
- sql - 如果日期落在 29,30 和 31,则将日期转换为下个月
- r - 在 ggplot2-plot 的标题中包含特定日期
- apache-kafka - Confluent Cloud 上没有模式验证
- css - 我在哪里可以找到 react-quill 中不同样式的 css
- firebase - 如何在颤振应用程序屏幕中显示 Firebase 分析
- flutter - 将 rootNavigator 路由弹出回 CupertinoTabView 路由时不调用 didPopNext
- javascript - 如何在 v-file-input 中检索文件
- content-management-system - 将 alfersco 6.2(带有治理服务 6.2)降级到 alfresco 5.2(带有记录管理 2.7 b)