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 (바깥 편집)
