Я пытаюсь обезопасить конструктор DataFrame в pandas
. Возвращаемое значение из внутренней области видимости (внутри патча) исчезает - оно возвращается с 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
В чем причиназа что?