正确答案是 D: 实参与形参名字必须相同。
分析:
A: Python 的参数传递方式实际上是“传对象引用”(也称为“按对象传递”)。这意味着函数接收的是引用的副本,而不是对象本身的副本。虽然从某种角度看,这类似于“值传递”,但在 Python 中更准确的说法是“按对象传递”。
B: 实参与形参在函数调用时确实是存储在不同的内存空间中。实参是调用函数时传递的实际值,而形参是在函数定义中使用的变量名。它们是独立的,除非形参指向的对象是可变的并且被修改。
C: 在函数内部改变形参的值不会改变实参的值,除非形参引用的是一个可变对象(如列表、字典等),并且对该对象进行了修改。在这种情况下,实参和形参引用的是同一个对象,因此修改会影响到实参。
D: 实参与形参的名字不必相同。形参是函数定义中的占位符,而实参是调用函数时实际传递的值。它们之间的匹配是通过位置或关键字参数进行的,而不是通过名字。