사용자 도구

사이트 도구


project:embeddedpython_boostpython

문서의 이전 판입니다!


Embedded Python: Boost Python

C만을 이용한다면 조금 복잡하겠지만, 아마 C++를 이용한다면 보다 언어적으로 혜택을 받을 수 있다. 임베딩을 보다 편리하게 해 줄 수 있는 라이브러리들이 있다. boost::python도 그 중 하나이다.

boost::python은 파이썬 확장에 보다 초점을 맞춘 것으로 보이는 라이브러리다. 현재 boost::pyhthon은 임베딩을 완전히 지원하지는 않는다

http://www.boost.org/doc/libs/1_55_0/libs/python/doc/tutorial/doc/html/python/embedding.html

그러나 이 정도만으로도 상당히 유용한 기능들을 가져다 쓸 수 있다.

본 문서는 boost::python을 이용한 파이썬 삽입에 대해 다룬다.

try-catch

C API를 사용하는 경우, 모든 값에 대해 에러 체크를 명시적으로 수행해야 했다. 이렇게 프로그래밍을 짜면 if ~ else의 철장벽이 겹겹이 쌓이게 된다. 2~3중으로 쌓인 if 문 안에서 에러가 나는 경우, 안전하게 에러 처리를 하기가 너무 어렵고, 어쩔 수 없이 goto 문에 의지하는 경우도 종종 발생한다.

boost::python에서는 try - catch 명령을 사용해 예외 처리를 할 수 있다.

if ( Py_SomeFunc != NULL ) {
  // 운이 좋다면
} else {
  // 여기서 자원 회수를 비롯한 에러 처리를 해야 한다.
}

이렇게.

try {
  ...
} catch (boost::python::error_already_set const &) {
 // 에러 처리
}

파이썬 기본 자료형 다루기

Type Casting

List

Tuple

Dictonary

project/embeddedpython_boostpython.1393909014.txt.gz · 마지막으로 수정됨: 2014/10/09 21:23 (바깥 편집)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki