표브이시

PyObjC
표브이시
원본 작성자렐레 가이팩스
개발자로널드 오소렌, 빌 범가너, 스티브 마제브스키 등.
초기 릴리즈1996년 9월; 25년(1996-09)
안정적 해제
5.2 / 2019년 4월 3일; 3년(2019-04-03)[1]
리포지토리
기록 위치파이톤
운영 체제크로스 플랫폼
면허증MIT 라이선스
웹사이트pyobjc.readthedocs.io/en/latest/

PyObjCPython 프로그래밍 언어와 Object-C 프로그래밍 언어 사이의 양방향 브리지로 프로그래머가 Python을 사용하여 Apple코코아 프레임워크와 같은 기존 Object-C 라이브러리를 사용하고 확장할 수 있다.

PyObjC는 순수한 Python에서 macOS 애플리케이션을 개발하는 데 사용된다.

코코아의 오픈 소스 교차 플랫폼 구현GNUstep에 대한 지원도 제한적이다.

Python 프로그래머용

PyObjC의 가장 중요한 용도는 프로그래머들이 순수한 Python의 코코아 라이브러리를 이용하여 GUI 애플리케이션을 만들 수 있게 하는 것이다.[2]더욱이, 목표-C가 C 프로그래밍 언어와 밀접한 관계(순수 슈퍼셋이다)의 영향으로, 개발자들은 목표-C 래퍼로 그것을 포장한 다음, PyObjC 브리지 위에 포장된 코드를 사용함으로써 어떠한 C 기반 API도 통합할 수 있다.Objective-C++를 사용하면 C++ 라이브러리에 대해서도 동일한 작업을 수행할 수 있다.

목표-C 프로그래머용

일반적으로 Python에서 작성된 작업이 Objective-C 등가보다 적은 행을 취하기 때문에 코코아 개발자들도 이익을 볼 수 있다.이것은 더 빠른 시제품 제작을 가능하게 하기 때문에 그들의 장점에 사용될 수 있다.

역사

PyObjC의 기원은 Lele Gaifax가 그 해 9월에 원래 모듈을 만들었던 1996년으로 거슬러 올라간다.[3]공로자 중에는 파이톤 프로그래밍 언어의 창시자인 귀도 판 로섬(Guido van Rossum)이 있었다.

PyObjC는 2002년에 다시 쓰여졌다.주목할 만한 추가 사항으로는 Python의 Objective-C 클래스를 직접 서브클래스할 수 있는 기능과 Foundation, App Kit 및 Address Book 프레임워크에 대한 거의 완전한 지원이 포함된다.

같은 해 후반에는, 비프레임 구조인 파이썬 빌드에 대한 지원뿐만 아니라, 맥 OS X에 포함된 파이썬 배포에 대한 후속 지원도 추가되었다. 이와 함께, 현재 애플 플랫폼 IDE Xcode의 전신인 Project Builder와 함께 사용할 수 있는 독립형 코코아 애플리케이션을 위한 프로젝트 템플릿이 나왔다.

애플은 2007년OS X 10.5 Leopard 출시와 함께 PyObjC를 맥 OS X에 통합했다.[4]

메시지 및 방법

목표-C에서 오브젝트는 메시지를 보내 서로 의사소통하는데, 이는 다른 오브젝트 지향 언어의 메서드 호출과 유사하다.개체가 메시지를 수신하면 메시지 이름 또는 선택기를 조회하여 동일한 선택기를 지정한 방법과 일치시킨 다음 호출한다.

이러한 메시지 표현에 대한 구문은 스몰토크로부터 계승되어, 수신기라고 불리는 물체로 나타나 메시지 이름 또는 선택기 이름의 왼쪽에 놓이고, 두 개 모두 대괄호 쌍으로 둘러싸여 있다(스몰토크에서는 대괄호 구문이 이어지지 않는다).선택기 내의 콜론은 각 결장당 하나 이상의 인수를 수용한다는 것을 나타낸다.코드 가독성을 개선하기 위해 콜론을 선택기 내에 배치하여 필요한 인수가 있을 때 표현식의 의도가 명확하다.

   [마이 리틀덕 makeSomeNoise:돌팔매질하다 눈을 감았다:@YES OneFoot:@YES]; 

이것은 Python에서 사용되는 구문과는 구별되며, 다른 많은 언어에서는 등가 식이 다음과 같이 읽힌다.

    마이 리틀덕.makeSomeNoise_eyesClosed_OneFoot_(돌팔매질하다, 진실의, 진실의) 

Object-C selector를 Python 메서드 이름으로 변환하는 것은 위에서 설명한 것처럼 각 콜론을 하나의 밑줄로 교체하고 끝에 괄호 안에 인수를 나열하는 것이다.

Object-C 클래스는 일반 Python 클래스와 동일한 방식으로 분류된다.

계급 마이덕(엔소버젝트):                   # NSObject는 기본 목표-C 클래스다.     반항하다 초기화하다(자아의):         자아의 = 잘 하는 군요(마이덕, 자아의).초기화하다() # 목표-C 숙어, 어디선가                                           # 하위 클래스 인스턴스, 자아, 인스턴스화                                           # 슈퍼클래스를 보내며                                           # 지정 이니셜라이저.         돌아오다 자아의  마이 리틀덕원 = 마이덕.할당하다().초기화하다() 

참고 항목

참조

  1. ^ "pyobjc". Python Package Index. Retrieved 2019-04-21.
  2. ^ "PyObjC Introduction". Retrieved 2018-08-05.
  3. ^ "PyObjC HISTORIC.txt". 2002-10-12. Retrieved 2017-09-29.
  4. ^ "PyObjC downloads.rst". Retrieved 2017-09-29.

외부 링크