категории | RSS

Jython - это язык программирования 100% Pure Java. Он позволяет полностью перевести исходный код языка Python в байт-код Java, и запустить полученный байт-код на любой Java Virtual Machine. Это совершенно незаметная и плавная интеграция с Java. Из Python вы можете получить доступ ко всем библиотекам Java, строить приложения, интегрироваться с Java bean и разбивать на подклассы Python классы Java, и наоборот. Аналогично языку Python и в отличие от Java, Jython может использоваться интерактивно; просто наберите некий код на JPython в строке приглашения и вы немедленно увидите результаты.

В более простых терминах, Jython позволяет вам составить скрипт для любого нужного вам Java-кода, переходящий при этом в код, который по количеству строк меньше исходного в два-десять раз. Поскольку Python является языком, с димамической типизацией, вы, к тому же, можете разрабатывать приложения быстрее и с меньшим количеством ошибок, получая в результате более гибкую программу. Jython можно получить на https://www.jython.org/.

Jyhon содержит несколько элементов:

* jython, интерпретатор Jython.
* jythonc, перекомпилирующий программу на Jython в файлы классов Java. Полученные в результате файлы классов Java могут использоваться как любые другие файлы классов Java, например, как апплеты, сервлеты или beans.
* Набор модулей, обеспечивающий пользователей Jython подавляющим большинством модулей из стандартной библиотеки Python.
* Несколько программ, демонстрирующих различные аспекты программирования на Jython.
Доступ к библиотекам Java

Рассмотрим программу ButtonDemo.py.
import java
from pawt import swing

def exit(e): java.lang.System.exit(0)

frame = swing.JFrame('Swing Example', visible=1)
button = swing.JButton('Close Me!', actionPerformed=exit)
frame.setDefaultCloseOperation(3)
frame.contentPane.add(button)
frame.pack()
Эта простая программа демонстрирует, насколько просто создавать программы на Jython, использующие библиотеку компонентов Swing. Первая строка импортирует пакет java, необходимый нам для вызова java.lang.System.exit(). Вторая строка импортирует Java-пакет swing (модуль pawt вычисляет точное местонахождение Swing, который может находиться в javax.swing или, возможно, в com.sun.java.swing). Четвертая строка создает рамку JFrame, присваивая ее свойству visible значение "истина". Пятая строка создает кнопку JButton с меткой и определяет, какая функция должна вызываться при нажатии этой кнопки. Шестая строка вызывает метод setDefaultCloseOperation, который указывает, что следует делать при закрытии ока(3 эквивалентно EXIT_ON_CLOSE). И наконец, последние две строки помещают кнопку JButton в рамку JFrame и делают это все видимым.

Для того чтобы упростить использование библиотек Java, Jython выполняет большой объем работы незаметно для пользователямя. Например, когда Jython импортирует пакет Java, он активно исследует соответствующий пакет, и затем, используя Java Reflection API, находит содержимое пакетов и подписи классов и методов. Кроме того, Jython "на лету" конвертирует между собой типы Python и Java. В ButtonDemo.py, например, текст кнопки ('This is a Swinging example!') представляет собой строку Python. Перед вызовом конструктора для JButton, Jython находит наиболее подходящий конструктор (например, отклоняя версию, принимающую Icon в качестве первого аргумента), и автоматически конвертирует строковый объект Python в строковый объект Java. Более сложные механизмы позволяют конструктору JButton принимать ключевой параметр actionPerformed=exit. Такой стиль невозможен в Java, поскольку Java не имеет возможности манипулировать функциями (или методами) как объектами первого класса. Jython исключает необходимость создания класса ActionListener с единственным методом actionPerformed, хотя при желании вы можете использовать более многословную форму.

DimonVideo
2007-10-12T21:16:18Z

Похожие файлы

Фруктовый Python! Часть 2.

Программирование для смартфонов

использование spk файлов в DroidScript

Программирование для смартфонов
Здесь находятся
всего 0. За сутки здесь было 0 человек

Комментарии 19

#9   inlanger    

При соответствующих знаниях-да


0 ответить

#9   _sky    

Мда... Как всем интересно.. Хоть мне в двух словах скажите.. Можно на jythonе написать полноценую ява игру например аналог fifa 2008 ?


0 ответить

#9   _sky    

Чего вы всразу где взял? Зайди на оф. сайт и на википедию, там тоже самое пишут


0 ответить

#9   inlanger    

Взял у мудрого гугля... Наткнулся на название, и решил поискать и почитать. Почитал - решил поделиться.


0 ответить

#9   l0st_Ang3l    

где взял?


0 ответить

#9   NgViks    

Не слабо...


0 ответить

#9   humor    

Я так понял это питон на ява для ява? Где скачать?


0 ответить

#9   zidzid    

Интересно. Скоро значит и яву будут клепать как говорится не отходя от кассы..


0 ответить

#9   _ALBERT_    

Источник?


0 ответить

Яндекс.Метрика