다음과 같은 C ++ 클래스가 있습니다.
class Foo {
public:
Foo(int param1 = 0, int param2 = 1);
}
그리고 아래와 같은 키워드 인수를 사용하여 파이썬에서 호출하고 싶습니다.
foo = Foo(arg1 = 1)
또는
foo = Foo(arg2 = 5)
boost :: python 의해 생성자에서 인수 이름을 바꾸는 방법을 모르겠습니다. 미리 감사드립니다
사용자 지정 이름 및 사용자 지정 기본값으로 생성자의 Python 서명을 정의하려면 다음과 같이 클래스를 내 보냅니다.
boost::python::class_<Foo>(
"Foo",
boost::python::init<int, int>(
(boost::python::arg("self"), boost::python::arg("arg1")=0, boost::python::arg("arg2")=1)
)
);
이제 Python에서 다음을 수행 할 수 있습니다.
foo = Foo() # arg1 is 0, arg2 is 1
foo = Foo(1, 5) # arg1 is 1, arg2 is 5
foo = Foo(1) # arg1 is 1, arg2 is 1
foo = Foo(arg1=1) # arg1 is 1, arg2 is 1
foo = Foo(arg2=5) # arg1 is 0, arg2 is 5
참고 : self
매개 변수 를 선언 할 필요는 없지만 생성자의 독 스트링이 향상됩니다.
Foo.__init__( (object)self [, (int)arg1=0 [, (int)arg2=1]]) -> None
Sphinx 등과 같은 문서 생성기를 사용하는 경우 유용합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다