您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – SWIG:没有定义任何类型图

5b51 2022/1/14 8:20:30 python 字数 2693 阅读 484 来源 www.jb51.cc/python

我有一个c类,我试图使用SWIG为 Python包装.我在尝试包装一个以数组作为输入的函数时遇到了麻烦. 这是头文件, class dyndiff_data_t { private: double H[3]; double GAMMA; double k; double P; public:

概述

这是头文件,

class dyndiff_data_t
    {
    private:    

        double H[3];
        double GAMMA;
        double k;
        double P;
    public:
        dyndiff_data_t(double H_[3],const double GAMMA_,const double k_,const double P_);

        void test();
    };

这是swig接口文件,

%module twowave
%{
  #define SWIG_FILE_WITH_INIT
  #include <twowave.h>
%}

%include "numpy.i"
%init %{
import_array();
%}

%apply (double IN_ARRAY1[3]) {(double H_[3])};

%include <twowave.h>

问题是对于数组输入,SWIG抱怨没有类型映射.我不明白为什么. numpy.i文件取自here,我正在使用的类型映射描述为here

任何帮助,将不胜感激.

%apply (int DIM1,double* IN_ARRAY1) {(int len,double* H_)}

而不是编写自己的类型图,只需使用carrays.i.

如果你想写一个类型图,例如取一个双打元组作为输入,它看起来像:

%typemap(in) double TUPLE[ANY]
{
   ...
}

在这种情况下,您可以按照预期的方式将其应用于您的功能.

%apply double TUPLE[3] {double H_[3]}

在尝试找出无法使用类型映射的原因时,一个好的开始是使用-tmsearch选项运行SWIG.在尝试匹配您的函数参数时,它会告诉您它正在寻找什么.

总结

以上是编程之家为你收集整理的python – SWIG:没有定义任何类型图全部内容,希望文章能够帮你解决python – SWIG:没有定义任何类型图所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶