不会google 的马工连入门都没有。 https://stackoverflow.com/questions/3061/calling-a-function-of-a-module-by-using-its-name-a-string gokgs 发表于 2023-11-13 12:00
谢谢。非常想知道,这个call函数是怎么能把字符串,变成函数名的。 microsat 发表于 2023-11-13 13:03
虽然我不常这样干,但是在c++里MACRO应该可以 jacketdog 发表于 2023-11-13 15:21
python里有类。所以定义一个类的vector,比如 models = {foo1, foo2, foo3, foo4}
然后调用 models[iii].fit(xTrain, yTrain)就可以调用不同的函数了。这里foo1.fit, foo2.fit, foo3.fit, foo4.fit 各不同。
如果不用类,用if语句也可以实现。比如 input = “foofunc1”
if (input == "foofunc1") { foofunc1(xTrain, yTrain); } .... if (input == "foofunc4") { foofunc4(xTrain, yTrain); }
我的问题是,如果不用if语句,能把字符串"foofunc1"等,动态的转换成函数名吗? 这个动态定义和调用一个函数的编程技术,叫什么?
call back functions?
https://stackoverflow.com/questions/3061/calling-a-function-of-a-module-by-using-its-name-a-string
谢谢。非常想知道,这个call函数是怎么能把字符串,变成函数名的。
函数的本质就是个入口地址,找到地址就可以执行了,解释语言的时候把地址和函数名记录一下就好了,所谓的symbols, 这些一般 debug 才有用,python 这些垃圾语言估计根本不区分用不用,-古脑儿的先记下来再说,这些语言浪费资源,速度慢不是没有原因的。
c++ 根本没这功能, 哈哈, 因为这些破玩意需要好多 overhead, c++ 懒得去支持。
https://stackoverflow.com/questions/19473313/how-to-call-a-function-by-its-name-stdstring-in-c