2016-08-22 4 views
0

선택적 인수의 기본값으로 None을 사용하는 것은 Python입니다. 예를 들어, 문자열 인수의 기본값으로 None 사용 : 문자열이나 None : 부스트 파이썬 함수에 문자열 또는 없음 인수를 모두 사용하는 방법

def f(str_arg=None): 
    if str_arg is None: 
     str_arg = get_str_arg_default() 
    ... 

따라서 f() 인수 str_arg에 대한 두 가지 유형을 받아들입니다.

이제 Boost Python을 사용하여 C++에서이 함수를 구현합니다. Boost Python이 문자열과 None 유형을 인수로 사용하도록하려면 어떻게합니까?

답변

1

boost::python::object을 수락 할 수 있습니까? 그런 다음 인지 확인하려면 is_none()으로 전화하십시오.

(예 : None)인지 확인하기위한 몇 가지 제안 사항을 제공하는 https://wiki.python.org/moin/boost.python/FAQ#How_can_I_check_returning_Python_value_for_None.3F을 참조하십시오. arg.ptr() == object().ptr(), arg.ptr() == Py_None 또는 arg.is_none()입니다.

+0

정말 고마워요! 나는 아직 시도하지 않았지만, 당신의 제안은 확실히 견고합니다. –