调用函数时忽略未使用的参数

时间:2019-04-30 08:53:48

标签: python

我试图通过使用'_'来忽略参数和与其链接的输出:

data_scaled, _, scaler = scaling(sequence_arr,*_)

函数是:

def scaling(x, y):
    x = x.reshape(x.shape[0], x.shape[1])
    y = y.reshape(y.shape[0], y.shape[1])
    scale = MinMaxScaler(feature_range=(-1, 1))
    scale = scale.fit(x)
    x_scaled = scale.transform(x)
    y_scaled = scale.transform(y)
    return x_scaled, y_scaled, scale

我得到了错误:

NameError: name '_' is not defined

3 个答案:

答案 0 :(得分:3)

您必须将y设置为可选,然后从那里开始。

def scaling(x, y=None):
    x = x.reshape(x.shape[0], x.shape[1])
    scale = MinMaxScaler(feature_range=(-1, 1))
    scale = scale.fit(x)
    x_scaled = scale.transform(x)
    if y is not None:
        y = y.reshape(y.shape[0], y.shape[1])
        y_scaled = scale.transform(y)
    else:
        y_scaled = None
    return x_scaled, y_scaled, scale

然后您可以像这样称呼

data_scaled, _, scaler = scaling(sequence_arr)

答案 1 :(得分:0)

您要在此处打开_的包装:

data_scaled, _, scaler = scaling(sequence_arr,*_)

打开包装仅适用于现有包装。

您只能使用_进行分配-习惯性地忽略该值。

要忽略scaling的额外参数,您需要更改函数本身。

def scaling(x, y, *args, **kwargs):

惯用的pythion函数定义,将任何额外的位置参数放入args中并将关键字参数放入kwargs

答案 2 :(得分:0)

由于未定义*_变量,因此在调用中使用_会导致错误。分配中的_正常,因为已创建变量。

通常,您不能“忽略”该函数期望的参数,除非它具有默认值。您至少应该传递类似None的内容:

#                                x =           y =
data_scaled, _, scaler = scaling(sequence_arr, None)

但是,在您的情况下,这会引发错误,因为在reshape对象上调用了None