python - 将参数从 python 解析为 C++

标签 python c++

我想知道如何从 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/

相关文章:

c++ - 包含 <algorithm> 和 <limits> 会导致 "invalid pure specifier"编译错误

c++ - Dijkstra 算法中的堆

python - 在 Python 中使用 Selenium 或 PIL 获取特定 CSS 类的图像大小

c++ - 错误 : Initializer provided for function, __THROW __asm

C++ 计时纪元小 100000 倍?

python - Django - 注释按日期分组的不同值的 Count()

C++17 constexpr 字符串解析

python - 从谷歌云存储获取状态503

python - 无法从 Python 中的部分初始化模块 'mydb' 导入名称 'connection'

python - 在 Jupyter Notebook 中使用 Flask-SQLAlchemy 模型