问题标签 [evaluation-strategy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
10 浏览

python - 为什么一个可变对象作为参数传递,然后反弹,然后变异,消失?

我是出于纯粹的兴趣和好奇而问的。我有以下代码:

产生以下输出: ['Carol', 'James']

我知道 Python 的评估策略是通过共享调用,在这种情况下,这意味着既不是副本也不是引用,而只是对students对象的访问被传递给enroll(...)函数。在引用全局students并从函数范围内重新绑定它之后,我希望 的值uni_students也会改变,但它保持不变 -["Smith", "Jacob", "Susan"]函数执行完成后,本地范围内的所有名称当然都被销毁,留下students具有值['Carol', 'James']

有人对此有任何解释吗?谢谢!