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

Python中使用字符串形式类型名转换变量值报错求解

解决思路

你遇到的报错原因很明确:mytype是字符串"int",而不是Python的int类型对象,字符串本身不能像函数一样被调用,所以会抛出TypeError: 'str' object is not callable。下面是几种可行的解决方法:

  • 方法一:通过globals()获取类型对象
    全局命名空间的globals()字典里包含了所有已定义的对象,包括内置类型,直接用字符串作为键取出对应的类型即可:

    mytype = "int" 
    myvalue = "35"
    my_int_val = globals()[mytype](myvalue)
    
  • 方法二:用类型映射字典(推荐,更安全)
    如果你的类型范围是固定的,手动创建一个类型映射字典是更稳妥的方式,能避免传入未知字符串时的风险:

    # 先定义允许的类型映射
    type_mapping = {
        "int": int,
        "str": str,
        "float": float
        # 可根据需求添加自定义类型
    }
    mytype = "int" 
    myvalue = "35"
    my_int_val = type_mapping[mytype](myvalue)
    
  • 方法三:借助__builtins__获取内置类型
    所有Python内置类型都存放在__builtins__中,用getattr可以按名称取出:

    mytype = "int" 
    myvalue = "35"
    my_int_val = getattr(__builtins__, mytype)(myvalue)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 19:20:35