错误分析
在 Python 中,bytes 类型是一个不可变的二进制序列。错误提示“TypeError: 'bytes' object is not callable”表示将 bytes 对象当做可调用的函数(函数调用)使用了。
这种错误通常发生在以下情况:
将 bytes 对象当做函数调用
示例代码:
s = b"hello world"
result = s("utf-8", "strict") # 报错,bytes对象不可调用函数
将 bytes 对象当做方法调用
示例代码:
s = b"hello world"
result = s.find("h") # 报错,bytes对象不支持该方法
解决方法
不要把 bytes 对象当做函数调用
如果你想从 bytes 对象中获取字符串,可以使用 decode 方法:
s = b"hello world"
result = s.decode("utf-8", "strict")
print(result) # 输出 "hello world"
不要把 bytes 对象当做方法调用
如果你想从 bytes 对象中查找某个字符或子串,可以先将其转换成字符串,然后再查找:
s = b"hello world"
result = s.decode("utf-8", "strict").find("h")
print(result) # 输出 0
或者可以使用 b.find() 方法,但需要注意它返回的是字节串中该子序列的开始位置,而不是字符串中的位置:
s = b"hello world"
result = s.find(b"h")
print(result) # 输出 0
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python报”TypeError: ‘bytes’ object is not callable “的原因以及解决办法 - Python技术站