执行此代码时:clffunc = sys.argv[1]
def fun(clffunc):
error_vector = clffunc()
print error_vector
loss_total = sum(error_vector)
loss_mean = np.mean(error_vector)
print "The mean error is %.2f" % loss_mean
def svm_clf():
#The clasificator object
clf = svm.SVC()
clf.fit(train_features, train_targets)
# Prediction
test_predicted = clf.predict(test_features)
# Analysis and output
return np.absolute(test_predicted-test_targets)
if __name__ == "__main__":
fun(clffunc)
从终端as:
^{pr2}$
我得到以下错误:File "/home/iki/griper validating/GraspT.py", line 24, in fun
error_vector = clffunc()
TypeError: 'str' object is not callable
在互联网上我找不到解决办法。
“str”对象不可调用几乎总是在有人重新定义内置函数或类似函数时完成。这不是我的案子。这里我从终端传递一个字符串,然后这个字符串被用作函数参数中的字符串。这个参数实际上是一个函数。所以我想选择要在代码中执行的函数(机器学习中的分类器方法)。在