本文总结如何动态调用函数的几种方法。
Updated: 2022 / 9 / 25
总览
参考这里 1
eval
- 应用场景
有 5 个函数,属于同一类型的函数。比如有 6 种实验用的表格,需要根据实验序号去动态调用相应的修改该表格的函数。 - 示例代码
import random
def experiment1():
print("experiment 01")
def experiment2():
print("experiment 02")
def experiment3():
print("experiment 03")
def experiment4():
print("experiment 04")
def experiment5():
print("experiment 05")
for nr in range(10):
id = str(random.randint(1, 5))
print(f'id: {id}')
eval('experiment'+id)()
- 示例结果
id: 5
experiment 05
id: 3
experiment 03
id: 5
experiment 05
id: 3
experiment 03
id: 5
experiment 05
id: 4
experiment 04
id: 1
experiment 01
id: 4
experiment 04
id: 1
experiment 01
id: 1
experiment 01
list
- 应用场景
有 3 个函数,属于不同类型的函数。比如根据被加入函数列表中的函数的索引来调用函数。 - 示例代码
参考这里 2
funclist = []
def calculate():
x = int(input("input x: "))
y = int(input("input y: "))
sum = x + y
print(f"sum = {sum}")
funclist.append(calculate)
def experiment():
print('I like experiment.')
funclist.append(experiment)
def split():
str = 'Love is patience.'
print(str.split(sep=' '))
funclist.append(split)
funclist[2]()
funclist[0]()
funclist[1]()
- 示例结果
['Love', 'is', 'patience.']
input x: 3
input y: 1
sum = 4
I like experiment.