Bál*_*vay 2 python random class list
我有一个带有某些功能的类,如下所示:
class valami:
def a():
*some code...*
def b():
*some code...*
def c():
*some code...*
Run Code Online (Sandbox Code Playgroud)
我想从valamicalss中选择一个随机函数。我已经尝试过了:
random.choice((valami.a(), valami.b(), valami.c()))
Run Code Online (Sandbox Code Playgroud)
但是它同时调用了所有功能。
不要立即调用它们,仅调用代码随机选择的函数:
random.choice((valami.a, valami.b, valami.c))()
Run Code Online (Sandbox Code Playgroud)
如果您不想调用它,只需删除最后一对括号,使其成为:
random.choice((valami.a, valami.b, valami.c))
Run Code Online (Sandbox Code Playgroud)
您也可以operator.methodcaller与random.choice
methodcaller(choice(('a', 'b', 'c'))(valami)
Run Code Online (Sandbox Code Playgroud)
要延迟拨打电话,请methodcaller事先进行。
method = methodcaller(choice(('a', 'b', 'c'))
Run Code Online (Sandbox Code Playgroud)
您甚至可以从其他地方获取方法名称:
methods = 'a', 'b', 'c'
method = methodcaller(choice(methods))
Run Code Online (Sandbox Code Playgroud)
然后只需在类/实例上调用方法:
method(valami)
Run Code Online (Sandbox Code Playgroud)