나는 Python부터 SWIG에 노출 된 C++가 있습니다. 단일 순수 가상 함수를 가진 기본 클래스가 있습니다.C++ baseclass가있는 Python 하위 클래스
파이썬에서는 모듈을 가져 와서 추상 클래스를 기본 클래스로 사용하는 클래스를 정의합니다.
import mymodule
class Foo(mymodule.mybase):
...
해당 모듈은 관리자 클래스이기도하므로 새 정의 된 클래스를 관리자에 추가하고 싶습니다. 추가의
m = mymodule.mymanager()
m.add(Foo())
정의 :
void add(mybase* b) { ... }
내가 기대하는 것처럼
작동하지 않았다 :
TypeError: in method 'mymanager_add', argument 2 of type 'mymodule::mybase *'
나는 무엇을 그리워 했습니까? 내 Foo 클래스가 "mybase"인지 확실하지 않은 것 같습니다. 파이썬에서 기본 클래스 생성자에 대한 호출을 추가하려고 시도했지만 작동하지 않았다고 클래스가 추상이라고 말했다.
def __init__(self):
mymodule.mybase.__init__(self)
먼저 부스트를 시도했습니다. 설치하는 데 오랜 시간이 걸렸지 만 결국에는 어쨌든 작동하지 못했습니다. 지금 다른 워크 스테이션에있는 Im 그리고 그 대머리에 다시 가져 가라. "그냥"boost.python을 설치하는 빠르고 쉬운 방법이 있는지 알지 못합니까? – Mizipzor
어떤 플랫폼을 사용하고 계십니까? 나는 linux/mac에서 패키지 관리자/macports를 통해 얻을 수 있다고 생각했을 것이다. 그렇지 않으면 http://www.boost.org/doc/libs/1_41_0/libs/python/doc/building.html에 'No-install quickstart'섹션이 있습니다. – robince