蛋炒鸡丁小饭团 2022-01-26 21:42 采纳率: 66.7%
浏览 33

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

我的理解

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

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

7
  • 写回答

2条回答 默认 最新

  • [PE]经典八炮 2022-01-27 12:03
    关注

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

    vector<char>
    

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

    评论

报告相同问题?

问题事件

  • 创建了问题 1月26日