下面是关于“Python通过函数名调用函数的几种方法总结”的完整攻略:
1. 通过eval()
函数调用函数
使用eval()
函数可以通过函数名动态调用函数。需要注意的是,该方法存在安全风险,因为它可以执行任意代码字符串。
def add(a, b):
return a + b
func_name = 'add'
args = (1, 2)
result = eval(func_name)(*args)
print(result) # 输出3
上述例子中,使用eval()
函数调用了名称为add
的函数,并传入了参数(1, 2)
,返回的结果为3。
2. 通过globals()
函数调用函数
globals()
函数返回一个包含全局变量的字典。可以使用globals()[func_name]
访问函数,并通过传入适当的参数来调用该函数。
def multiply(a, b):
return a * b
func_name = 'multiply'
args = (3, 4)
result = globals()[func_name](*args)
print(result) # 输出12
上述例子中,使用globals()
函数访问了名称为multiply
的函数,并传入了参数(3, 4)
,返回的结果为12。
3. 通过getattr()
函数调用函数
getattr()
函数返回指定对象的属性值。在Python中,函数也是一个对象,可以使用getattr()
函数调用函数。
def divide(a, b):
return a / b
func_name = 'divide'
args = (10, 2)
result = getattr(__main__, func_name)(*args)
print(result) # 输出5.0
上述例子中,使用getattr()
函数获取名称为divide
的函数,并传入了参数(10, 2)
,返回的结果为5.0。
4. 通过字典及函数名调用函数
首先将函数名作为键值存储到字典中,然后通过获取字典值的方式调用函数。
funcs = {
'square': lambda x: x * x,
'cube': lambda x: x * x * x
}
func_name = 'square'
arg = 3
result = funcs[func_name](arg)
print(result) # 输出9
上述例子中,定义了一个包含两个函数的字典,通过获取square
键对应的函数来调用函数,并传入了参数3,返回的结果为9。
综上所述,通过上述四种方法,我们可以方便地通过函数名动态地调用函数,并且能够处理不同的参数。需要注意的是,第一种方法存在安全风险,应谨慎使用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python通过函数名调用函数的几种方法总结 - Python技术站