采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师你好,有个问题,就是说+=其内部实现的是__iadd__这个魔法方法,而这个方法实际调用的是extend方法,那假设我用tuple(这里不用list了),为什么用+=可以成功添加,而直接使用extend就会报错呢提示没有tuple没有这个extend方法,是python解释器会把tuple转成list吗?
a=(1,2)b=(3,4)# a+=ba.extend(b)
list和set中都实现了___iadd__方法,对list来说是在___iadd__中调用了extend,这只能说明list中是有extend方法的, 但是这不能证明set的___iadd__方法中也是调用了extend方法,也就证明不了set有extend方法
我在内建的class list():里看了下,里面的__iadd__都是pass,而tuple,set的这些类定义的地方,甚至没有实现__iadd__这个方法,请问我该在哪里查看呢
这个是用c语言实现的想要搞清楚这个需要去了解c源码
登录后可查看更多问答,登录/注册
socket编程/多线程/多进程/线程池/asyncio并发编程/协程和异步IO
1.5k 31
1.4k 24
1.3k 16
1.8k 10
1.4k 9
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号