依赖字符串变量调用函数的方法?

2020-10-28 17:56:30 +08:00
 frmongo

如果我有一个字符串变量 a,还有一个函数 bbb, 变量 a 的内容是 bbb 函数的名称字符串, 如何才能,仅依靠变量 a 就调用 bbb 函数(不依靠 bbb 的名字)

a = "bbb"

def bbb():
    xxx
    xxx
    return yyy

bbb() # 这是传统用法,不这样用,希望在变量 a 上做文章
1495 次点击
所在节点    Python
5 条回复
lululau
2020-10-28 18:02:35 +08:00
locals()[a]()
JeffGe
2020-10-28 18:06:05 +08:00
func_dict = {'bbb': bbb}

func_dict[a]()
zone10
2020-10-28 18:09:19 +08:00
```python
eval(a)()
```

更复杂的用 `exec()`
dahuahua
2020-11-07 17:16:17 +08:00
应用场景说明一下?能用户反射的地方不香吗
frmongo
2020-11-10 17:53:17 +08:00
@dahuahua #4 现在突然想,一时想不起来场景,遇到这个需求的时候可能可以活学活用,节省一点代码

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/719527

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX