Python中的函数参数传递

2024-09-30 12:34:22 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的代码表示尝试使用一个最小的、可复制的示例,该示例按照预期编译和运行

import numpy as np
from sklearn import  model_selection as skms

N = 20

ftr = np.linspace(-10,10,num=N) # ftr values
tgt = 2*ftr**2 -3 + np.random.uniform(-2,2,N) # tgt =func(ftr)

(train_ftr, test_ftr, train_tgt, test_tgt) = skms.train_test_split(ftr, tgt, 
test_size = N//2)

model_one = np.poly1d(np.polyfit(train_ftr, train_tgt, 1))
preds_one = model_one(test_ftr)

其中,以下为numpy ndarrays类型

train_ftr
test_ftr
train_tgt
test_tgt

我的问题与最后一行preds_one的输出有关,而第二行model_one。在最后一行中,当model_one是复合函数时,如何将参数test_ftr传递给在最后第二行中定义的函数model_one?也就是说,test_ftr实际上传递给了什么


Tags: 函数代码testimportnumpy示例modelas
1条回答
网友
1楼 · 发布于 2024-09-30 12:34:22

np.poly1d返回一个callable对象。也就是说,它可以像函数一样调用(即它是函数)。Python中的对象如果具有__call__()函数,则可以调用

通过调用model_one(test_ftr),实际上是在调用model_one.__call__(test_ftr),这是该对象拥有的一个方法

Python中的每个函数都是带有__call__方法的对象

相关问题 更多 >

    热门问题