【发布时间】:2025-12-13 06:15:01
【问题描述】:
我正在尝试修改 pandas 中的 DataFrame 构造函数。内部作用域(补丁内)的返回值消失了 - 它返回 None。然而,在外部范围内,DataFrame 是按预期构建的,即使补丁返回是明显的None
import pandas as pd
f = pd.DataFrame.__init__
def make_df(*args, **kwargs):
print('Called Before')
df = f(*args, **kwargs)
print(f"df from inner scope:\n{df}")
return df
pd.DataFrame.__init__ = make_df
df = pd.DataFrame({'a': list('aab'), 'b': [1, 2, 3]})
print()
print(f'df from outer scope:\n{df}')
结果:
Called Before
df from inner scope:
None
df from outer scope:
a b
0 a 1
1 a 2
2 b 3
这是什么原因?
【问题讨论】:
标签: python pandas dataframe monkeypatching