据我所知,有3个参数被传递给m.def((。我不理解传递的第二个参数的语法,即[](Observable…({}这意味着什么?
m.def(
"DumpHistogramFile",
[](Observable<NetBase>::Observer* ob) {
HistogramNetObserver* hist_ob =
dynamic_cast_if_rtti<HistogramNetObserver*>(ob);
hist_ob->DumpHistogramFile();
},
pybind11::arg("ob"));
我在pytorch源代码中发现了这种语法
第二个参数是一个函数,它获取指向Observer
的指针,并且不返回任何内容。执行时,它调用DumpHistogramFile
。这被称为lambda表达式。