采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
本小节中讲到len()处理list dict set 等效率高,是不是为了说明使用魔法函数效率相对降低?还是别的? 不太理解
比如len对于list这种用c语言写的数据结构可以直接读取list中的一个变量就知道list的长度而不需要去遍历list中的每个数据,所以len方法会根据不同的类型具体调用不同的处理方法
是不是说,使用魔法函数,让对象拥有了序列属性,之后再用len()方法去求对象中某个属性的长度,会直接通过 cpython 去找长度变量。所以使用魔法函数比自己在类里面另外定义一个求长度的函数,效率更高。
对于__len__这种魔法方法确实是会被len调用,但是仅限于自己定义的对象,像list和dict这种本身是由c语言写的会有比这种更高效的获取方式
非常感谢!
登录后可查看更多问答,登录/注册
socket编程/多线程/多进程/线程池/asyncio并发编程/协程和异步IO
1.2k 31
1.1k 24
1.1k 16
1.4k 10
1.1k 9