专栏名称: Crossin的编程教室
编程世界的新手村。 这里有可能是最简单的 Python 入门教程。 每天5分钟,轻松学编程。
今天看啥  ›  专栏  ›  Crossin的编程教室

Python到底是引用传递还是值传递?网上大多数教程都讲错了

Crossin的编程教室  · 公众号  ·  · 2024-06-23 00:35

文章预览

还记得上一次关于变量作用域文章最后的问题吗? Python常见问题:全局变量和局部变量 def func (m):    m[ 0 ] = 20    m = [ 4 , 5 , 6 ]     return m l = [ 1 , 2 , 3 ] func(l) print( 'l =' , l) 实际的输出我想大家都尝试过了吧,应该是: [20, 2, 3] 和80%人想象中的结果不一样。 这是为什么呢? 在 Python 的官方文档 FAQ 里有这样一句话 Remember that arguments are passed by assignment in Python. 要记住,Python 里的参数是通过赋值传递的。 https://docs.python.org/3/faq/programming.html#how-do-i-write-a-function-with-output-parameters-call-by-reference 所以要弄清楚参数传递,先得弄清 Python 的赋值。 或许在很多人的直观印象中,变量是一个容器;给变量赋值,就像是往一个存储的容器中填入一个数据;再次赋值就是把容器中的数据换掉。 然而, 在 Python 中,这种理解是错的! 在 Python 中,这种理解是 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览