【发布时间】:2021-06-01 02:29:41
【问题描述】:
更新问题:
我想在我的类中包含一个辅助函数,该函数使用另一个辅助函数,该辅助函数仅在该类的一个方法中使用。如果我有一个静态方法,我会使用@staticmethod 和 self.func_name。但是,如果我想从静态方法中调用另一个静态方法并指定使用 self.helper_func,我会得到一个“名称“自我”是未定义”错误。
为了给您一些背景信息,我这样做的原因是因为在我的实际用例中,我正在处理分组数据帧的列表。然后在该外部应用语句中,我然后遍历每个分组数据帧中的特定列集并应用实际函数。因此,外部辅助函数只是对分组数据帧中的组进行应用,然后调用内部辅助函数对列组执行操作。
import pandas as pd
import numpy as np
class DataManipulation():
def __init__(self, data):
self.data = data
@staticmethod
def helper_func(const):
return const
@staticmethod
def add_constant(var):
res = var+self.helper_func(5)
return res
def manipulate_data(self):
res = self.data.apply(add_constant)
return res
test_df = pd.DataFrame({'a': np.arange(4), 'b': np.arange(4)})
data_manip = DataManipulation(test_df)
data_manip.manipulate_data()
【问题讨论】:
-
使用
self.add_constant