我是C++的新手,只是尝试一下.我坚持使用以下代码:
#include<iostream>
void t(){
std::cout << "func t()" << std::endl;
}
int main(int argc, char **argv) {
int t(); //declaration of function
std::cout << t() << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
输出为"func t()\n6295712".我担心的是由t()打印的随机(?)数字.
我的问题是:为什么允许声明另一个返回类型的函数(这里:int而不是void)而没有任何错误?这不违反类型安全性,因为我从未定义过具有返回类型"int"的函数吗?
使用的编译器:gcc(Ubuntu 4.8.4-2ubuntu1~14.04.1)4.8.4
我从Python scikit-learn包中实现了随机森林分类器(RF)以解决ML问题.在第一阶段,我使用交叉验证来检查其他算法,现在我可以选择RF.
后来我还查看了RF的OOB估计告诉我的内容.但是,当我将'oob_score_'中的回报与我的CV结果进行比较时,我有很大的差异.
scikit-learn文档告诉我:
oob_score:bool
是否使用袋外样本来估计泛化误差.
由于doc,我假设参数'oob_score_'是误差估计.但是寻找原因,我也想到它可能实际上估计了准确性而不是这个 - 至少有点 - 更接近我的简历结果.我也检查了代码,更多的是相信这是准确性,但我想确定...(在这种情况下,我发现该文档误导BTW).
oob_score_是scikit-learn准确度还是误差估计?
我发现了多种(略有不同)在Python中定义抽象类的方法。我阅读了文档,但在stackoverflow上也找不到答案。
这三个示例之间的主要区别(请参见下面的代码)是:
Aabc.ABCMeta显式设置新的元类B 继承自 abc.ABCC继承objects但定义@abc.abstractmethod类似乎A和B没什么不同(即也B有新的metaclass abc.ABCMeta)。但是,类C仍然是type type。
不为其定义元类有C什么影响?什么时候需要定义元类,或者不abc.ABCMeta为抽象类定义元类是错误/不好的风格?但是,该班级的C表现似乎符合我对ABC的期望。
import abc
class A(metaclass=abc.ABCMeta):
# Alternatively put __metaclass__ = abc.ABCMeta here
@abc.abstractmethod
def foo(self):
raise NotImplementedError
class B(abc.ABC):
@abc.abstractmethod
def foo(self):
raise NotImplementedError
class C(object):
@abc.abstractmethod
def foo(self):
raise NotImplementedError
class Aimpl(A):
def foo(self):
print("Aimpl")
class Bimpl(B):
def foo(self):
print("Bimpl")
class Cimpl(C):
#def foo(self):
# print("Cimpl") …Run Code Online (Sandbox Code Playgroud)