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

如何正确获取Python变量类型?Python3类型判断异常求助

解决Python中bytes类型判断的问题

嘿,我明白你遇到的问题了!咱们先看看你代码里的问题出在哪儿:

你写的判断条件是type(base64_type) is 'bytes',但type(base64_type)返回的是类对象<class 'bytes'>,而不是字符串'bytes'——这俩完全不是一个东西,所以判断自然不成立啦。

下面给你几种正确的类型判断方式:

方法1:直接和bytes类比较(不用引号)

把字符串'bytes'换成实际的bytes类对象就行:

print(type(base64_type)) # 输出: <class 'bytes'>
if type(base64_type) is bytes:
    print('wow')
else:
    print ('Why are we not working')

这样就能正确触发print('wow')了。

方法2:推荐使用isinstance()(更灵活)

在Python中,判断对象类型的标准做法是用isinstance()函数,它支持继承关系的判断(比如如果有bytes的子类,也能正确识别),代码如下:

print(type(base64_type)) # 输出: <class 'bytes'>
if isinstance(base64_type, bytes):
    print('wow')
else:
    print ('Why are we not working')

这个方法比直接用type()更符合Python的最佳实践,建议优先使用。

再总结下问题根源

你之前的错误是把类对象和字符串字面量做了比较,type()返回的是类本身(比如bytes),而不是字符串'bytes',所以is判断会返回False,导致进入else分支。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:21:50