- значительно ли размер tmp2 больше, чем tmp1, поскольку ему нужно хранить дополнительный df_x?
- есть ли веская причина предпочесть Tmp2 Tmp1? В этом простом примере df_x требует небольшого процесса, в других примерах мне может потребоваться выполнить тяжелый процесс для df_x. Мне интересно, какую дополнительную нагрузку создаст Tmp1.
class Tmp0:
df_x: pd.DataFrame
keep_zeros: bool = False
def transform(self):
if not self.keep_zeros:
self.df_x = self.df_x.replace(0, np.nan).dropna(how='all').dropna(how='all', axis=1)
return self.df_x
@dataclass
class Tmp1:
df_x: pd.DataFrame
df_y: pd.DataFrame
keep_zeros: bool = False
def __post_init__(self):
self.df_x = Tmp0(self.df_x, self.keep_zeros).transform()
def transform(self):
self.df_y = self.df_y.where(self.df_x.notna())
return self.df_y
@dataclass
class Tmp2:
df_y: pd.DataFrame
def __post_init__(self):
self.df_x = Tmp0(self.df_x).transform()
def transform(self, df_x, keep_zeros=False):
df_x = Tmp0(df_x, keep_zeros).transform()
self.df_y = self.df_y.where(df_x.notna())
return self.df_y
df_x = load_data()
tmp1 = Tmp1(df_x, df_y)
tmp2 = Tmp2(df_y)
Подробнее здесь: https://stackoverflow.com/questions/790 ... -attribute