0
포장 :가 부스트 - 파이썬에서 파생 클래스를 만듭니다 내가 개인 생성자를 가진 클래스와 공장이 C++ 라이브러리에서 공장
class MyServer {
MyServer() {..};
public:
MyServer create(std::string &config);
};
부스트 파이썬을 나는 날이 팩토리를 사용할 수있는 랩퍼를 작성 :
from MyWrappedLibrary import MyServer, StartServer
server = MyServer.create('some: magic, config: string')
StartServer(server)
지금 나는이 같은 MYSERVER하는 방법을 추가 할 :
from MyWrappedLibrary import MyServer, StartServer
class MyEnhancedServer(MyServer):
def __init__(self, config):
super().__init__(config)
def another_method(self):
do(something)
그러나 코스 t의 MyServer
을 직접 인스턴스화 할 수 없기 때문에 그의 작품이 작동하지 않습니다. 물론
내가 MyServer
에서 파생되지 않은 클래스를 만들 수 있지만 모든 방법을 포장했다 이후는 기분이 좋지 것 :
class MyEnhancedServer:
def __init__(self, config):
self.core_instance = MyServer.create(config)
def foo_1(self): # wrapper
self.core_instance.foo_1()
def foo_2(self): # wrapper
return self.core_instance.foo_2()
def another_method(self):
do(something)
server = MyEnhancedServer('some: magic, config: string')
StartServer(server.core_instance)
질문 :을 만들 수있는 방법이 있나요 MyServer.create()
의 결과는 MyEnhancedServer의 '기본 인스턴스'입니까?
class MyEnhancedServer(MyServer):
def __init__(self, config):
self.MyServer = MyServer.create()
def another_method(self):
do(something)