蛋炒鸡丁小饭团 2022-01-26 21:29 采纳率: 66.7%
浏览 18
已结题

为什么Python的len()函数可以获取字符串真正的长度?

我的理解

通过Python源码可知, Python是由C语言编写的,但是在C/C++语言内,不管是使用strlen()还是String类中的length()方法都无法获取其中有\0数据的变量的真正长度,而Python在实测过程中发现是可以获取到字符串真正长度的,这是为什么?
或者说,这是如何实现的呢?

>>> a=b"\x00ABCDEF"
>>> a
b'\x00ABCDEF'
>>> len(a)
7
  • 写回答

2条回答 默认 最新

  • @Tree 2022-01-26 22:30
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • [PE]经典八炮 2022-01-27 12:02
    关注

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

    vector<char>
    

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

    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月24日
  • 已采纳回答 3月16日
  • 创建了问题 1月26日

悬赏问题

  • ¥40 找同学帮敲Python代码
  • ¥15 MYSQL 订单的商品明细重复计算问题
  • ¥15 微信实时共享位置修改
  • ¥100 TG的session协议号转成直登号号后客户端登录几分钟后自动退出设备
  • ¥50 共模反馈回路的小信号增益
  • ¥15 arduino ssd1306函数与tone函数放歌代码不兼容问题
  • ¥70 0.96版本hbase的row_key里含有双引号,无法deleteall
  • ¥15 诊断性META分析合并效能的检验
  • ¥15 请问abb根据色块判断奇偶数并根据批次号放入仓储
  • ¥66 开发PC客户端一定也要开发上位机吗?