は、私が使用して建設を支援
Vector(const double* list, size_t len);
フル例にプロトタイプを変更推薦
import example
v = example.Vector([1.0,2.0,3.0])
example.h
#pragma once
#include <cstdlib>
class Vector {
public:
Vector();
Vector(double x, double y, double z);
Vector(const double* list, size_t len);
};
example.cpp
#include "example.h"
#include <iostream>
Vector::Vector() {
std::cout << "Vector()" << std::endl;
}
Vector::Vector(double x, double y, double z) {
std::cout << "Vector(double, double, double)" << std::endl;
}
Vector::Vector(const double* list, size_t len) {
std::cout << "Vector(const double*)" << std::endl;
}
example.i
%module example
%{
#define SWIG_FILE_WITH_INIT
#include "example.h"
%}
%include "numpy.i"
%init {
import_array();
}
%apply (double* IN_ARRAY1, size_t DIM1) \
{(const double* list, size_t len)}
%include "example.h"
setup.py
from distutils.core import setup, Extension
setup(name="example",
py_modules=['example'],
ext_modules=[Extension("_example",
["example.i","example.cpp"],
swig_opts=['-c++'],
)])
は(HTTP私たちは、[チャットでこの議論を続ける]してみましょう。この例では、エラー簡潔にするためにチェックしないと、テストの目的のためにインラインクラスが含まれています注意してください.com/rooms/145385/discussion-between-flexo-and-dan-niero)。 – Flexo