我正在围绕特定数据集编写一个包装类,该数据集将表示为pandas数据框。大约有15列。我希望用户能够在课程构建时选择他们想要的列。每列都是通过调用类中的方法构建的,即
def calculate_feature1():
。我正在考虑为每一列创建一个布尔构造函数参数,但我想知道是否有更好的模式。
class MyCoolDFWrapper:
def __init__(include_feature_1=True, include_feature_2=True, etc ...)
def calc_feature_1():
pass
...
def calc_feature_n():
pass
def get_data(self):
return self.df[ " go calculate list of features they wanted to include " ]
可以改进吗?
答案 0 :(得分:2)
你可以使用像这样的纯关键字参数:
def my_function(arg1, **kwargs)
您传递给my_function的任何参数都将放在字典kwargs中。您可以在运行时查看函数中字典的内容。
因此,你可以给它你想要的15个布尔参数,或者只是一个包含你想要的列的整数数组,并且你可以调用你的函数。但问题是,你真的需要15个函数来计算这些特征吗?