+=和extend的思考

来源:5-3 list中extend方法区别

xmzls

2018-04-11

老师你好,有个问题,就是说+=其内部实现的是__iadd__这个魔法方法,而这个方法实际调用的是extend方法,那假设我用tuple(这里不用list了),为什么用+=可以成功添加,而直接使用extend就会报错呢提示没有tuple没有这个extend方法,是python解释器会把tuple转成list吗?

a=(1,2)
b=(3,4)
# a+=b
a.extend(b)

写回答

1回答

bobby

2018-04-12

list和set中都实现了___iadd__方法,对list来说是在___iadd__中调用了extend,这只能说明list中是有extend方法的, 但是这不能证明set的___iadd__方法中也是调用了extend方法,也就证明不了set有extend方法

0
2
bobby
回复
xmzls
这个是用c语言实现的想要搞清楚这个需要去了解c源码
2018-04-16
共2条回复

Python3高级核心技术97讲,高级进阶的必学课程

socket编程/多线程/多进程/线程池/asyncio并发编程/协程和异步IO

2121 学习 · 551 问题

查看课程