假设我有一个二维函数f(x,y)和另一个函数G(函数),它将一个函数作为输入.但是,G只将一维函数作为输入,我想将f传递给G,第二个变量作为固定参数.
现在,我只是声明了第三个函数h,它将y设置为一个设定值.这是某种形式的样子:
def f(x,y):
something something something
return z;
def G(f):
something something something
def h(x):
c= something
return f(x,c);
G(h)
Run Code Online (Sandbox Code Playgroud)
在某些时候,我也在制作ya默认参数,我每次都会更改.
这些都不像我能以某种方式调用那样可读
G(f(x,c))
Run Code Online (Sandbox Code Playgroud)
该特定语法不起作用.做这个的最好方式是什么?
从我所看到的,我应该能够在枚举上运行一个开关,但是我正在吐出错误:
enum EMETH {TRAP=1, SIMP=2, MIDP=3, SINF=4};
switch(METH)
{
case "TRAP":
Meth=&Integrators::Trap;
break;
case "SIMP":
Meth=&Integrators::Simp;
break;
case "MIDP":
Meth=&Integrators::Midp;
break;
case "SINF":
Meth=&Integrators::SInf;
break;
}
Run Code Online (Sandbox Code Playgroud)
错误是
error: invalid conversion from ‘const char*’ to ‘int’ [-fpermissive]
case "TRAP":
error: ‘(int)((long int)"TRAP")’ is not a constant expression
Run Code Online (Sandbox Code Playgroud)
对于每个案例.