请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

本小节讲len()的特殊性和本章魔法函数的联系是什么

本小节中讲到len()处理list dict set 等效率高,是不是为了说明使用魔法函数效率相对降低?还是别的?
不太理解

正在回答

1回答

比如len对于list这种用c语言写的数据结构可以直接读取list中的一个变量就知道list的长度而不需要去遍历list中的每个数据,所以len方法会根据不同的类型具体调用不同的处理方法

0 回复 有任何疑惑可以回复我~
  • 提问者 慕慕6496279 #1
    是不是说,使用魔法函数,让对象拥有了序列属性,之后再用len()方法去求对象中某个属性的长度,会直接通过 cpython 去找长度变量。所以使用魔法函数比自己在类里面另外定义一个求长度的函数,效率更高。
    回复 有任何疑惑可以回复我~ 2019-05-03 16:31:16
  • bobby 回复 提问者 慕慕6496279 #2
    对于__len__这种魔法方法确实是会被len调用,但是仅限于自己定义的对象,像list和dict这种本身是由c语言写的会有比这种更高效的获取方式
    回复 有任何疑惑可以回复我~ 2019-05-06 17:35:39
  • 提问者 慕慕6496279 #3
    非常感谢!
    回复 有任何疑惑可以回复我~ 2019-05-09 16:06:03
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信