You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python 3.10如何将列表中的字符串项转为可调用的模块函数

如何从字符串获取random模块的函数并调用

别用字符串拼接的方式折腾,既不安全又麻烦。直接用Python内置的getattr()函数就能解决,这是从模块/对象里通过字符串名称获取属性(包括函数)的标准方法。

举个完整的实现例子:

import random

# 假设你从dir(random)里拿到了"randint"这个字符串,这里直接赋值做示例
func_name = "randint"

# 从random模块中获取对应名称的函数
target_func = getattr(random, func_name)

# 像调用普通randint函数一样传入参数执行
result = target_func(1, 10)
print(result)

如果你之前尝试的类似something(var[55] + "(a, b)")的写法,本质是想通过字符串执行代码,这种场景可能会想到用eval(),但非常不推荐——eval()会执行任意字符串代码,要是字符串来源不可控,很容易引入安全风险,而且代码可读性极差。比如这种写法(仅作反面示例,别用):

import random

func_name = "randint"
result = eval(f"random.{func_name}(1, 10)")

总之,优先用getattr(),这是最规范、安全的实现方式。

内容的提问来源于stack exchange,提问作者elakhdar_ayoub

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 21:48:19