2012-08-08 2 views
2

다른 언어로 된 기존 코드에 대한 Python 바인딩을 개발하려는 동기는 무엇입니까? 나는 많은 프로그래머들이 기존의 C 코드를위한 파이썬 바인딩을 개발하는 것을 보았다. 왜? 어떻게 도움이됩니까?파이썬 바인딩이 C와 같은 다른 언어로 된 기존 코드 용으로 개발 된 이유는 무엇입니까?

+5

... 완전히 재 작성하지 않고도 파이썬에서 사용할 수 있도록함으로써? – oldrinb

답변

4

C에 대한 지원을 제공하면서, 매우 빠르고 효과적 일 수있다 낮은 수준의 언어이기 때문에 파이썬, C에 바인딩이있다 엄청난 양의 하드웨어 및 소프트웨어 기능. C는 초보자에게는 매우 어렵고 본질적으로 파이썬이 개선 한 객체 지향 기능이 부족합니다. C는 객체 지향적 인 동작이 없기 때문에 C++을 만들 수있었습니다.

종종 소프트웨어 프로젝트는 Python이 C를 능가하는 코드의 실행 속도가 아니라 개발자의 속도로 제한됩니다.

C 이상 파이썬의 장점은 다음과 같습니다 :

  • 강력한 자기 반성 능력이
  • 직관적 인 객체 지향
  • 절차 적 코드의
  • 자연 표현
  • 전체 모듈화, 계층 패키지를 지원

    • 매우 명확하고 읽기 쉬운 구문을
    • 예외 기반 오류 처리
    • 매우 높은 수준의 동적 데이터 유형
    • 확장 및 모듈은 쉽게, C++ (또는 Java 자이 썬, 또는 IronPython을위한 .NET 언어)
    • C로 작성된 거의 모든 작업에 대한 광범위한 표준 라이브러리 및 타사 모듈 스크립팅 인터페이스
    테스트의 많은 많은 년 C의 많은 매우 높은 품질의 라이브러리가 있기 때문에

    http://www.python.org/about/

  • +0

    "파이썬은 C로 해석됩니다"라는 문장은 기껏해야 오해의 소지가 있습니다. Python의 가장 일반적인 구현은 실제로 C로 작성된 해석기이지만 Python 코드는 결코 C로 변환되지 않으며 다른 구현 (PyPy, Jython, IronPython)에서는 다른 전략을 사용합니다. – Dougal

    +0

    실현하고 변경했습니다. –

    +0

    @Ben 5 분 전에 바뀌었지만 단어의 나쁜 선택이었습니다. –

    4

    환경 설정 기반이기 때문에 완전한 권한으로 말할 수는 없지만, C에 대한 Python 바인딩을 개발하면 Python 구문을보다 생산적이고 쉽게 처리 할 수있는 사람들이 쉽게 개발 프로세스를 수행 할 수 있습니다.

    (예를 들어, 파이썬 CUDA, 3D, 키 넥트 등 라이브러리)

    +0

    나는 래퍼 (바인딩)의 개발이 자바에서도 가능하다고 생각한다. 파이썬 바인딩은 그것보다 이점이 있습니까? 어떤 기준으로 파이썬 바인딩이나 자바 래퍼를 결정할 수 있습니까? 감사. –

    +1

    주관적이라고 생각합니다. 나 자신을 포함한 일부 사람들은 Python을 매우 쉽고 효율적으로 프로그래밍 할 수 있습니다. (실행 가능한 의사 코드), 나는 이것이 가장 동기 부여라고 생각한다. 필자는 자바 프로그래머이기도하므로 16 년 동안 계속 사용 된 언어를 배쉬시키는 것은 어렵지만 바인딩을 선택하려면 파이썬으로 작성해야합니다. 현재 Accumulo API 용으로 개발 중입니다. – Edmon

    1

    , 버그와 같은 응용 프로그램 내에서 임베드 파이썬에서 모든 것을 재 구현하려고 시도하는 것은 대단한 일입니다 (예 : Python에서 암호화 라이브러리를 사용하지 마십시오. openssl, NSS 또는 gnutls와 같이 잘 테스트되고 편집증이 개발 된 C 라이브러리에 바인딩을 사용해야합니다).