2012-03-23 4 views
1

C로 작성된 모듈에서 threading.Conditioncollections.deque과 같은 상위 수준의 Python 구문을 사용하는 모범 사례가 있습니까? 특히 다음C에서 상위 수준의 Python 구문 사용

  1. 은 딕셔너리 조회 방법에 대한 비용 및 부재
  2. 직접 C에
  3. 이 때 로컬 원하는 기능을 구현할 수 가능한이다 이들 구조의 일부를 액세스로부터 하지 오기 방지 디에 다른 표준 라이브러리에서

답변

2
  1. 문자열 조회 ct는 Python에서 매우 저렴하지만 원하는 경우 구조체에 캐시 할 수 있습니다.

  2. 이러한 라이브러리는 C가 아닌 Python을 통해 액세스하기 때문에 대개 C 모듈의 정의와 일치하는 고유 한 헤더를 생성 할 수는 있지만 필요합니다. Python 버전별로 유지 관리해야합니다.

  3. 좋은 답변이 없습니다. 그것은 "빠르다"대 "빠르다"로 떨어집니다.

+1

wrt 2 대부분의 개인 기능은 '정적'이므로 헤더만으로는 작동하지 않습니다. 링커가 불평 할 것이다. 그리고 그들이 수출되지 않는다면, 어쨌든 확장 모듈에서 작동하지 않을 것입니다. – yak

+0

... 또한 질문자가 인용 한 예제 모듈 두 가지는 구조와 알고리즘의 고수준 재 구현이며 C에서 사용 가능한 가능성이 있다고 덧붙일 것입니다. 나는 C 해커가 아니지만 매일 C++로 프로그램하고있다. cpython API를 통해 C++ STL의'std :: deque'와'std :: mutex' (각각'collections.deque'와'threading.Condition'의 대략적인 유사점입니다); 이 선을 따라 원시 대안을 탐구하고 싶을 수도 있습니다. – fish2000