请问,如下面所示意,定义了几个函数。我将函数名字写在一个列表当中。请问怎样可以通过随机选取函数的名字,从而直接调用这个函数来执行,并且获得返回结果呢?万分感谢各位
如下面示意,接下来要怎么写呢?本人刚开始自学python,实在遇到瓶颈,谢谢各位
import random
def run():
Pass
def eat():
Pass
def sleep():
Pass
def jump():
Pass
cat=[“run","eat","sleep","jump"]
action=random.sample(cat,2)
使用eval转换随机得到的函数名称,然后调用函数即可:
import random
def run(num):
print('run',num)
def eat(num):
print('eat',num)
def sleep(num):
print('sleep',num)
def jump(num):
print('jump',num)
cat=["run","eat","sleep","jump"]
action=random.sample(cat,2)
eval(action[0])(10)
运行结果:
、
eval('run()')
就是在调用了
用exec('run()')也行
或者你的list不要放字符串,直接放a=[run,eat]这样,然后执行a[0](),下标通过random随机
# 定义一个关于车的类
class Car(object):
def info(self):
print("this is a car")
class Fly(object):
pass
# 实例化对象
car = Car()
# 调用对象方法
car.info()
运行结果
this is a car
可以通过以下步骤实现:
random
模块中的 choice
函数从 func_names
列表中随机选择一个函数名称。globals()
函数获取全局命名空间中的函数,并将选择的函数名称作为字符串传入。()
调用该函数,并将其返回值存储在变量中并返回。代码实现如下:
import random
def func1():
return "Hello from func1"
def func2():
return "Greetings from func2"
def func3():
return "Salutations from func3"
func_names = ['func1', 'func2', 'func3']
def random_call():
random_func = random.choice(func_names)
func = globals()[random_func]
return func()
result = random_call()
print(result)
执行多次代码,每次结果都会不同,因为每次调用随机选择的函数。