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

如何在遮蔽类型符号的函数中访问该类型符号?

如何在被遮蔽内置类型的函数内部访问原类型?

当函数参数名(比如int)和内置类型重名导致遮蔽时,有两种通用方法可以拿到原类型:

  • 直接使用__builtins__模块
    所有Python内置类型都存放在__builtins__这个内置模块里,不管函数内部有没有遮蔽同名标识符,都能通过它获取原类型。示例:

    def foo(int):
        # 获取被遮蔽的原int类型
        original_int = __builtins__.int
        # 验证:原类型和参数里的int不是同一个对象
        print(original_int is int)  # 输出False
        # 正常使用原类型创建实例
        num = original_int(456)
        print(type(num) is original_int)  # 输出True
    

    这个方法是通用的,哪怕你没法轻松创建该类型的实例,直接取类型本身就行,不需要依赖实例的type()方法。

  • 提前在函数外部保存原类型引用
    如果函数定义前能提前拿到原类型,可以先保存一个引用,后续在函数内部直接用:

    # 提前保存原int类型的引用
    original_int = int
    
    def foo(int):
        print(original_int is int)  # 输出False
        print(original_int(789))    # 输出789
    

    这种方法适合你能提前预知会被遮蔽的类型的场景。

不管是int还是其他内置类型(比如str、list),这两种方法都适用,能解决“无法轻松创建实例”的通用情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 20:03:12