程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Python:list.extend和list .__ iadd__之间的区别大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Python:list.extend和list .__ iadd__之间的区别?

开发过程中遇到Python:list.extend和list .__ iadd__之间的区别的问题如何解决?下面主要结合日常开发的经验,给出你关于Python:list.extend和list .__ iadd__之间的区别的解决方法建议,希望对你解决Python:list.extend和list .__ iadd__之间的区别有所启发或帮助;

+=使对象有 就地更改对象。但这取决于的类型x,这并不意味着对象已就地更改。

这样,+= 仍然需要重新分配x;要么x.__iadd__()返回x新对象返回; x += something确实翻译成:

x = x.__iadd__(something)

由于+=包含作业,因此在中x被标记为本地g()

x.extend()另一方面,这不是一项任务。程序员已决定x始终是带有.extend()方法的对象,并直接使用它。Python看不到分配,x并标记为全局。

解决方法

我以list.extend和列表上的“ + =”基本上可以做同样的事情-扩展列表而不创建新列表。

我希望可以打印以下代码,[42,43,44,45,46]但是UnboundLocalError: local variable 'x' referenced before assignment

为什么我收到此错误?区别在哪里?

def f():
    x.extend([43,44])
def g():
    x += ([45,46])
x = [42]
f()
g()
print x

我在python2.7.3和python3.4.0中进行了尝试。

大佬总结

以上是大佬教程为你收集整理的Python:list.extend和list .__ iadd__之间的区别全部内容,希望文章能够帮你解决Python:list.extend和list .__ iadd__之间的区别所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。