我想知道如何从 python 更改 C++/C 程序中的参数值。 在下面的程序中,我使用 Newton-Raphson 方法计算函数的根。 我想要的是将变量 xn 的值(用于初始猜测)更改为某个值 在 python 接口(interface)中给出的值。这段代码非常简单,但我正在尝试更大的代码 我需要更改一些变量的值并且我不想编译代码 每次我改变这些变量的值。
我可以编写一个输入文件以避免再次编译代码,但我想要的是
进一步控制代码,例如,在某个时间步停止程序并
更改变量的值并继续执行。
您能否告诉我是否有一种直接的方法可以做到这一点?
问候。
#include <iostream>
using namespace std;
double first_derivative(double x)
{
double dummy;
// Parabolic Function
dummy = 2.0 * x + 7.0;
return (dummy);
}
double second_derivative(double x)
{
double dummy;
//Parabolic Function
dummy = 2.0 ;
return(dummy);
}
int main ()
{
double xn,fd,sd;
int i,n;
i=0;
xn=4.0 ;
cout << i << " " << xn << "\n" ;
for(i=0; i<10 ; i++) {
fd = first_derivative(xn);
sd = second_derivative(xn);
xn = xn - fd/sd ;
cout << i << " " << fd << " " << sd << " " << xn << "\n" ;
}
return 0;
}
最佳答案
如果您希望它像 Python 一样运行,那么最好只用 Python 编写它。
您不能只是“更改已编译程序的编号”。但是,您可以做的是让程序接受您随后在运行时更改的参数。您可以在 C++ 中使用命令行参数、配置文件或请求输入来执行此操作。所有这些都比涉及 Python 更容易。
如果出于某种原因此代码的某些部分必须使用 C++ 而您确实需要 Python,那么您可以将 C++ 例程作为库公开给 Python。一种流行的方法是 SWIG。然后你可以做的是制作你从 Python 调用的函数,它会接受你的可变参数。您的 Python 脚本会简单地调用它们。
关于python - 将参数从 python 解析为 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7680226/