Python 判断调用一个函数会不会改变这个变量本身
·
在 Python(尤其是 pandas、numpy)里,
一个函数或方法可能:
- 返回一个新对象(不改原来的),或
- 原地修改原来的对象(in-place 修改)
判断方法
方法 1:看参数里有没有 inplace=
很多 pandas 的方法(例如 dropna()、sort_values()、fillna())
都有一个 inplace 参数。
inplace=False(默认) → 返回新对象,原变量不变inplace=True→ 原地修改,不返回新对象
举例:
df.dropna() # 不改 df
df.dropna(inplace=True) # 改 df 本身
如果函数文档里有 inplace 参数,那就是可选是否修改本体的函数。
方法 2:看函数名是否返回值(通过赋值测试)
你可以直接试:
result = df.dropna()
- 如果
result和df是两个不同对象,说明没有改原来的。 - 可以用
is来检测是否同一个对象:
result is df
# False → 没有改原对象
方法 3:查看官方文档或用 help()
Python 的内置帮助非常有用:
help(df.dropna)
它会显示:
Returns a new DataFrame with NA entries dropped or None if inplace=True.
从这句可以判断“默认返回新对象”。
更多推荐



所有评论(0)