Rumah  >  Artikel  >  pembangunan bahagian belakang  >  python如何通过函数名的字符串来调用这个函数

python如何通过函数名的字符串来调用这个函数

silencement
silencementasal
2019-05-25 13:50:255683semak imbas

python如何通过函数名的字符串来调用这个函数

遍历执行列表中的函数,但是从列表中获得的函数名是字符串,所以会提示类型错误,字符串对象是不可以调用的。如果我们想要字符串变成可调用的对象呢?或是想通过变量调用模块的属性和类的属性呢?以下有三种方法可以实现

1、eval()

15bb5fd0fd54f797b76da886f11f13f.png

eval() 通常用来执行一个字符串表达式,并返回表达式的值。在这里它将字符串转换成对应的函数。eval() 功能强大但是比较危险(eval is evil),不建议使用。

2、locals()和globals()

3a4f81316f636c2941d0d89535cb1c0.png

locals() 和 globals() 是python的两个内置函数,通过它们可以以字典的方式访问局部和全局变量。

3、getattr()

getattr() 是 python 的内建函数,getattr(object,name) 就相当于 object.name,但是这里 name 可以为变量。

返回 foo 模块的 bar 方法

f4d32dd7c3d2392d1294658aa1df429.png

返回 Foo 类的属性

8572988889f670a64a0932b429c6385.png

标准库operator下的methodcaller函数

e652820346261b6396920c295fbc732.png

Atas ialah kandungan terperinci python如何通过函数名的字符串来调用这个函数. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn