문제

C++로 클래스를 구현했습니다.Python과 함께 사용하고 싶습니다.단계별 방법을 제안하고 각 단계를 자세히 설명해주세요.이런 것...

class Test{
     private:
        int n;
     public:
        Test(int k){
            n=k;
        }
        void setInt(int k){
            n = k; 
        }
        int getInt(){
            return n;
        }
};

이제 파이썬에서

>>> T1 = Test(12)
>>> T1.getInt()
12
>>> T1.setInt(32)
>>> T1.getInt()
32

제안해주세요. 어떻게 해야 하나요?메모:수동으로 하는 방법을 알고 싶습니다.나는 타사 라이브러리 종속성을 원하지 않습니다.

도움이 되었습니까?

해결책

들여다보다 부스트.파이썬.C++로 Python 모듈을 작성하는 라이브러리입니다.

또한 살펴보세요 통음 다른 스크립팅 언어에 대한 모듈도 처리할 수 있습니다.나는 과거에 내 수업을 위한 모듈을 작성하고 Python 내에서 사용하는 데 그것을 사용했습니다.훌륭하게 작동합니다.

다음을 사용하여 수동으로 수행할 수 있습니다. 파이썬/C API, 인터페이스를 직접 작성합니다.꽤 낮은 수준이지만 Python이 뒤에서 어떻게 작동하는지에 대한 많은 추가 지식을 얻을 수 있습니다(어쨌든 SWIG를 사용할 때 필요합니다).

다른 팁

ctypes 좋다. 사용하기가 정말 쉽고 파이썬과 함께 표준이 있습니다. 불행히도 C 스타일 인터페이스가있는 공유 라이브러리 (UNIX) 또는 DLLS (Windows) 와만 대화 할 수 있습니다. 즉, C ++ 객체와 직접 인터페이스 할 수 없습니다. 그러나 핸들이 특정 객체를 지칭하는 핸들 시스템을 사용할 수 있습니다.

>>> getInt(h)
12

나는 그것이 간단하고 이해하기 쉽고 추가 라이브러리가 필요하지 않다고 생각합니다.

SWIG 또는 SIP (KDE/PYQT)를 사용해보십시오.

SWIG 링크 : http://www.swig.org/
SIP 링크 : http://freshmeat.net/projects/python-sip/

이들은 C ++ 클래스를 마무리하고 Pythonic 인터페이스를 제공하는 데 사용될 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top