要想在Python中通过字符串来调用函数,我们可以利用globals()
内置函数来得到全局命名空间的字典对象,然后通过字典键对应的方式来获取到函数对象。具体步骤如下:
- 首先定义需要调用的函数,例如下面的示例函数:
python
def add(a, b):
return a + b
- 接着定义一个字符串变量作为函数名,如下所示:
python
func_name = 'add'
- 然后使用
globals()
函数获取到全局命名空间的字典对象,并将其赋值给global_dict
变量:
python
global_dict = globals()
- 最后通过
global_dict
字典对象以及函数名字符串func_name
来获取到对应的函数对象,如下所示:
python
func = global_dict[func_name]
- 此时我们就可以使用获取到的函数对象来调用该函数,示例如下:
python
result = func(1, 2)
print(result) # 3
以上就是通过字符串函数名得到对应的函数的完整攻略,下面再给出两个更具实际意义的示例。
示例1:计算器应用
假设我们有一个计算器应用,需要通过用户输入的操作符来调用对应的计算函数实现加、减、乘、除等操作。这时我们就可以通过上述方法来实现。
def add(a, b):
return a + b
def sub(a, b):
return a - b
def mul(a, b):
return a * b
def div(a, b):
return a / b if b != 0 else None
op = input("请输入操作符(+、-、*、/):")
if op in ('+', '-', '*', '/'):
func = globals()[op]
x = int(input("请输入第一个操作数:"))
y = int(input("请输入第二个操作数:"))
result = func(x, y)
if result is None:
print("除数不能为0")
else:
print("计算结果:", result)
else:
print("不支持的操作符:", op)
示例2:调用第三方库
我们可以通过字符串函数名的方式来调用某些第三方库的函数,比如numpy
库中的一些数学函数。具体步骤如下:
import numpy as np
func_name = 'exp'
func = getattr(np, func_name)
x = 2
result = func(x)
print(result) # 7.3890560989306495
上述示例中,我们通过getattr()
内置函数来获取到numpy
模块中的exp
函数对象,然后使用该函数对象来计算x
的指数值。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 由字符串函数名得到对应的函数(实例讲解) - Python技术站