我的理解
通过Python源码可知, Python是由C语言编写的,但是在C/C++语言内,不管是使用strlen()还是String类中的length()方法都无法获取其中有\0数据的变量的真正长度,而Python在实测过程中发现是可以获取到字符串真正长度的,这是为什么?
或者说,这是如何实现的呢?
>>> a=b"\x00ABCDEF"
>>> a
b'\x00ABCDEF'
>>> len(a)
7
通过Python源码可知, Python是由C语言编写的,但是在C/C++语言内,不管是使用strlen()还是String类中的length()方法都无法获取其中有\0数据的变量的真正长度,而Python在实测过程中发现是可以获取到字符串真正长度的,这是为什么?
或者说,这是如何实现的呢?
>>> a=b"\x00ABCDEF"
>>> a
b'\x00ABCDEF'
>>> len(a)
7
python的字符串和C/C++的字符数组不一样,python的字符串是不可变的,所以能获取到真正的长度