为什么Python的len()函数可以获取真实长度?

我的理解

通过Python的源码可知它是有C语言编写的,但众所周知,C/C++是以\x00做为结束符标志的,也就是说假如一个字符串如下“hello\0, world”,那么就只会获取到5的长度,无论是使用strlen()函数或是string类中的length()方法。
而Python的len()函数,即使整个字符串都是\x00,依旧可以获取到真正的长度,这是为什么?或者说这是如何实现的?

>>> a = b"\x00ABCDEF"
>>> print(len(a))

7

呃,虽然是用C语言写的,但是虚拟机不一定用的就是C语言现成的函数啊,为什么不用C语言写一种可以获取真实长度的?就比如C++中的

vector<char>

就可以,用C语言写一个类似的就行了

python的字符串和C/C++的字符数组不一样,python的字符串是不可变的,所以能获取到真正的长度