>백엔드 개발 >파이썬 튜토리얼 >Python과 JavaScript 간 코드 변환을 위한 4가지 도구

Python과 JavaScript 간 코드 변환을 위한 4가지 도구

高洛峰
高洛峰원래의
2016-10-17 11:54:471490검색

파이썬인가, 자바스크립트인가? 많은 친구들이 현재 둘 중 어느 쪽이 더 강하고 누가 더 밝은 개발 전망을 가지고 있는지에 대해 여전히 논쟁을 벌이고 있지만, 웹 프런트엔드 분야에서 둘 사이의 경쟁에 명확한 답이 있다는 것은 의심의 여지가 없습니다. 브라우저 플랫폼을 기반으로 JavaScript를 포기하면 선택할 수 있는 프로젝트가 거의 없습니다.

글쎄, 대답이 그렇게 절대적이지는 않을 수도 있습니다. JavaScript는 다른 많은 프로그래밍 언어(예: TypeScript, Emscripten, Cor 및 Cheerp)에서 선택되는 변환 대상이 되었습니다. 반면에 Python은 엄청난 추종자와 강력한 기존 라이브러리 라이브러리를 보유하고 있어 JavaScript를 위한 이상적인 변환 또는 번역 옵션입니다.

다음은 Python을 JavaScript 세계로 성공적으로 가져올 수 있는 네 가지 프로젝트입니다.

Transcrypt

이것은 새로 등장한 Python-JS 변환기입니다. Transcrypt는 생성되는 코드의 품질 수준에 대해 인상적인 노력을 기울이고 있습니다. 첫째, 다중 상속 및 람다 표현식을 포함하여 원래 Python 코드 구조를 최대한 많이 유지합니다. Python 소스 코드는 JavaScript의 네임스페이스에 있는 개체를 직접 호출할 수도 있습니다. Python에서 document.getElementById에 액세스하려고 하면 변환된 코드도 JavaScript에서 document.getElementById를 사용하도록 전환됩니다.

문서에 따르면 Transcrypt는 CPython의 추상 구문 트리 모듈을 사용하여 이러한 번역 작업을 완료합니다. 이 작업은 Python이 자체 코드를 구문 분석하는 방식을 기반으로 프로그래밍 방식으로 액세스할 수 있습니다. 프로젝트는 아직 알파 테스트 단계이지만 이미 놀라운 견인력을 보여주고 있습니다.

Jiphy

일명 Jiphy는 "JavaScript in, Python out"을 의미합니다. 즉, 두 가지를 양방향으로 변환할 수 있습니다. 또한 두 언어의 코드를 다른 언어로 변환하기 전에 혼합할 수도 있습니다.

현재 Jiphy의 가장 큰 단점은 Python의 기능 세트 중 일부만 지원한다는 것입니다. 클래스와 기본 매개변수는 아직 지원되지 않지만 데코레이터와 예외는 사용할 수 있습니다. 이는 주로 Jiphy가 소스 코드와 대상 코드 간의 직접적인 라인 간 변환을 고집하지만 개발자들도 고급 Python 기능을 지원하기 위해 ES6의 새로운 기능을 살펴보기 시작했기 때문입니다.

Brython

언젠가 WebAssembly의 비전이 현실이 되면 우리는 웹 개발을 위해 선호하는 언어를 선택할 수 있게 될 것입니다. 그리고 Brython은 이에 대해 자체적으로 이해하고 있습니다. 또는 적어도 Python 3에 적용됩니다. 왜 기다리나요?

Brython은 일련의 JavaScript 라이브러리를 통해 Python 3의 모든 키워드와 대부분의 내장 플러그인을 에뮬레이션하여 Python 3 버전을 클라이언트 측 웹 프로그래밍 솔루션으로 사용한다는 목표를 달성합니다. Python으로 작성된 스크립트는 웹 페이지에 직접 추가할 수 있으며, Brython은 DOM과의 공동 실행을 위한 고급 Python 모듈 인터페이스(브라우저) 세트도 지원하며 이는 종종 JavaScript에서 직접 수행할 수 있습니다.

그러나 Brython은 로컬 파일 시스템 처리를 지원하지 않는 등 브라우저가 JavaScript 코드에 부과하는 제한 사항도 유지합니다.

RapydScript

RapydScript는 "Pythonic JavaScript 코드를 더 이상 형편없게 만들 것"을 약속합니다. 이 프로젝트는 개념적으로 CoffeeScript와 유사합니다. 그 사람의 가장 좋은 특성. Python 측에는 명확한 구문 규칙이 있고 JavaScript 측에는 익명 함수, DOM 조작 및 jQuery 또는 Node.js 코어와 같은 기존 JavaScript 라이브러리를 사용하는 기능이 있습니다.


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.