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

Python如何将字符串形式的方法转为可执行方法并应用到字符串变量

实现方案

方案1:修正eval写法(不推荐,存在安全风险)

你之前调用eval报错的原因是表达式里的car被Python识别为未定义的变量,而非字符串值,调整写法直接引用已定义的变量a即可:

a = "car"
b = ".title()"
c = eval(f"a{b}")
print(c)
# 输出:Car

如果b的内容不受信任,该方法会导致任意代码执行漏洞,因此更推荐使用无安全风险的方案2。

方案2:使用反射调用(推荐,安全稳定)

先从b中提取出方法名,再通过getattr获取字符串对象对应的方法调用即可:

a = "car"
b = ".title()"
# 提取方法名,去除前后的点和括号
method_name = b.strip('.()')
# 反射调用对应方法
c = getattr(a, method_name)()
print(c)
# 输出:Car

之前两次尝试失败的原因:

  1. 第一次eval("car.title()"):Python将表达式中的car作为变量名查找,你没有定义名为car的变量,因此触发NameError
  2. 第二次format拼接:仅生成了字符串形式的表达式,没有实际执行表达式逻辑,因此得到的是字符串'car.title()'而非方法调用结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 23:45:02