python有没有办法选择一个随机的def?

python有没有办法选择一个随机的def?,python,function,random,Python,Function,Random,我想将每个标注存储在def函数中 例如: def shooting(): print("bang bang") def mugging(): print("money, now!") callout = ['shooting', 'mugging'] randomthing = random.choice(callout) print(randomthing + "()") 因此,每个标注都存储在def函数中。然后它在callout和randomthing中随机化。然后(我知

我想将每个标注存储在def函数中 例如:

def shooting():
    print("bang bang")

def mugging():
    print("money, now!")
callout = ['shooting', 'mugging']
randomthing = random.choice(callout)
print(randomthing + "()")

因此,每个标注都存储在def函数中。然后它在callout和randomthing中随机化。然后(我知道这部分是错误的)我希望它可以称为抢劫()或shooing(),但有50/50的机会。

你几乎成功了!只需删除引号,并直接存储函数名。Python中的函数与变量类似:

callout = [shooting, mugging]
randomthing = random.choice(callout)
print(randomthing())

@jhpratt你不需要“lambdas”
lambda
仅定义一个函数,与
def
相同;无论函数是如何定义的,您都可以拥有一个数组。只需将代码更改为
callout=[shooting,mugging]
,存储实际函数而不是它们的名称。然后,您可以执行
randomthing()
调用您选择的任何函数。这似乎是最有效的!但现在它似乎在砰砰的一声之下加上了“无”这个词。例子:砰砰None@T.ps这是因为您的每个函数都执行
打印
,然后不返回任何内容。如果不返回任何内容,则默认值为
None
。因此,当您打印(randomthing())时,它将打印
。您可能想做的是将函数更改为返回字符串,而不是打印字符串。我该如何解决此问题?您可以将函数更改为
返回“砰砰”和
返回“money,now!”
或者,您可以调用
randomthing()
,而不是
print(randomthing())