You need to enable JavaScript to run this app. 为什么变量a是整数时,a == type(int)后的打印代码未执行?
优惠活动
大模型
产品
解决方案
定价
更多

为什么变量a是整数时,a == type(int)后的打印代码未执行?

错误原因

你写的判断逻辑存在两处核心错误:

  • 首先,type(int)的返回值不是你以为的整数类型:int本身就是Python的内置类型对象,把类型对象传入type()函数,返回的是<class 'type'>(也就是所有类型对象所属的类),拿数值12345和type类比对,永远不可能相等。
  • 其次,就算你把条件改成a == int也不会成立:a存储的是int类型的实例,而int是类型本身,实例和类型对象的值当然不一样。
正确的类型判断写法

有两种常用的正确写法实现你的需求:

  • 直接比对类型(仅匹配完全一致的类型)
    写法为:

    a = 12345
    if type(a) == int:
        print(True)
    

    运行后就会输出True,如果你把int替换为float,因为a是整数类型,所以条件不成立不会输出,把a赋值为12345.0时判断float才会触发打印。

  • 兼容继承的类型判断(更推荐)
    用Python官方推荐的isinstance()方法,写法为:

    if isinstance(a, int):
        print(True)
    

    这个方法可以正确识别子类实例的类型,适用场景比直接比对type()更广

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 01:45:06