Некоторые основные разъяснения о Python?
Вчера вечером я встретил термин под названием Jython, который был для меня новым, поэтому я начал читать об этом только для того, чтобы добавить больше к моей путанице в отношении Python в целом. Я никогда не использовал Python. Итак, вот что меня смущает.
-
Python is implemented in C
- Означает ли это, что интерпретатор был написан на языке C или интерпретатор преобразует исходный код Python в C?
-
CPython - это не что иное, как оригинальный Python, и этот термин был просто придуман, чтобы позже отличить его от Jython - true или false?
-
Теперь, когда Python реализован в C (не совсем уверен, что это значит), но означает ли это, что python может быть легко интегрирован с любым C-кодом.
-
Является ли Jython новым языком программирования или его синтаксис и другие конструкции программирования выглядят точно так же, как исходный питон? или это просто python, который может быть интегрирован с java-кодом?
-
Если ни один из моих вышеуказанных вопросов не отвечает на разницу между Python и Jython, что это такое?
Ответы
Ответ 1
- Первый.
- Полагаю, да. Строго говоря, "Python" относится только к языку (независимо от реализации), но если различие не важно (например, при обсуждении деталей реализации), оно также может ссылаться на реализации. "CPython" - это однозначное имя для самой старой, наиболее широко используемой реализации, которая является стандартом де-факто.
- Ну, не совсем понятно. C-код, который обрабатывает объекты Python, должен жонглировать с помощью
PyObject *
и использовать вспомогательную функцию, предоставляемую CPython для преобразования, например. целое число Python для C int
. Аналогично, код C должен быть обернут функциями, принимающими и возвращающими PyObject *
, выставляя функции и метаданные интерпретатору и т.д. Вы также можете использовать, например. ctypes
для вызова собственного кода (хотя это часто бывает больно), SWIG и т.д. для автоматизации обертывания или Cython для написания модулей C в Язык Python-C-crossover.
- Это еще одна реализация Python, то есть того же языка. Основное отличие состоит в том, что код работает на JVM и может легко интегрироваться с Java (или Scala или Closure или любым другим языком JVM).
- Python - это язык. Jython - это реализация этого языка. Вы просите разницу между C и GCC?
Ответ 2
"Python" - это имя самого языка, а не конкретной реализации интерпретатора, так же как "C" - это имя языка программирования, а не конкретного компилятора.
"CPython" представляет собой реализацию интерпретатора языка Python, написанного на C. Он компилирует исходный код Python в байтовый код и интерпретирует байтовый код. Это старейшая и эталонная реализация языка Python.
"Jython" - это еще одна реализация языка Python. Он преобразует код Python в байт-код Java, который может быть выполнен на виртуальной машине Java.
Ответ 3
a) Python - это язык программирования. Интерпретаторы кода Python реализованы с использованием других языков программирования, таких как C (PyPy даже с использованием самого Python для реализации, я полагаю).
b) CPython, aka Classic Python, является эталонной реализацией и написан на C. Jython - это интерпретатор Python, написанный на Java.
c) Использование библиотек C в Python довольно просто, например. используя модуль ctypes.
d) см. b.
e) см. a и b.
Ответ 4
a) Стандартная и наиболее широко используемая языковая реализация написана в c, также скопированной CPython. Существует также, например, Python, реализованный в Python - http://codespeak.net/pypy/dist/pypy/doc/
b) CPython - это стандартная реализация python по умолчанию в C. Jython - это реализация в Java.
c) Да.
d) Jython - это реализация письменности языка Python в Java.
e) CPython легко интегрируется с C, Jython легко интегрируется с Java.