【发布时间】:2021-12-03 12:42:03
【问题描述】:
在 pandas 中,inplace 参数对引用进行修改,但我知道在 python 中数据是按值而不是按引用发送的,我想知道这是如何实现或如何工作的
【问题讨论】:
标签: python python-3.x pandas mutability call-by-value
在 pandas 中,inplace 参数对引用进行修改,但我知道在 python 中数据是按值而不是按引用发送的,我想知道这是如何实现或如何工作的
【问题讨论】:
标签: python python-3.x pandas mutability call-by-value
Python 的参数传递模型既不是“按值传递”也不是“按引用传递”,而是“按对象引用传递”
当您将字典传递给函数并在函数内部修改该字典时,更改将反映在字典无处不在。
但是,这里我们要处理一些更不那么模棱两可的事情。当将inplace=True 传递给pandas 对象(无论是Series 还是DataFrame)的方法调用时,我们只是在说:更改当前对象而不是给我一个新对象。方法调用可以修改调用它们的实例的变量——这与语言是“按值调用”还是“按引用调用”无关。唯一会变得棘手的情况是,如果一种语言只有常量(想想val)而没有变量(想想var)——想想纯粹的函数式语言。然后,这是真的——你只能返回新对象,不能修改任何旧对象。但在实践中,即使是最纯粹的语言,您也可以找到就地更新记录的方法。
【讨论】: