问题标签 [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.
python - 为什么一个可变对象作为参数传递,然后反弹,然后变异,消失?
我是出于纯粹的兴趣和好奇而问的。我有以下代码:
产生以下输出:
['Carol', 'James']
我知道 Python 的评估策略是通过共享调用,在这种情况下,这意味着既不是副本也不是引用,而只是对students
对象的访问被传递给enroll(...)
函数。在引用全局students
并从函数范围内重新绑定它之后,我希望 的值uni_students
也会改变,但它保持不变 -["Smith", "Jacob", "Susan"]
函数执行完成后,本地范围内的所有名称当然都被销毁,留下students
具有值['Carol', 'James']
。
有人对此有任何解释吗?谢谢!