Перейти до вмісту

IronPython

Матеріал з Вікіпедії — вільної енциклопедії.
Версія від 18:52, 12 грудня 2015, створена Jarozwj (обговорення | внесок) (Додав виноски-джерела з enwiki)
IronPython
ТипPython Programming Language Interpreter
РозробникJim Hugunin, Dino Viehland
Перший випуск5 вересня, 2006
Стабільний випуск2.7.5 (6 грудня, 2014)
Платформа.NET Framework, Mono
Мова програмуванняC Sharp і Python Редагувати інформацію у Вікіданих
ЛіцензіяApache License version 2.0[1]
Репозиторійgithub.com/IronLanguages/ironpython3
Вебсайтironpython.net

IronPython — одна з основних реалізацій мови Python, призначена для платформи Microsoft .NET або Mono. Повністю написаний на C#, і є транслятором компілюючого типу.

В IronPython можна використовувати типи .NET. Також можна з .NET коду використовувати IronPython код, з застосуванням хостингу IronPython системи або попередньої збірки IronPython коду.

Версії

  • Реліз 2.0 був випущений 10 грудня 2008 і оновлений до 2.0.3 23 був жовтня 2009.[2] IronPython 2.0.3 сумійсний з .NET лише до версій 3.5.
  • Реліз 2.6 був випущений 11 грудня 2009 і оновлений 12 квітня 2010.[3] IronPython версії 2.6.1 сумісний тільки з .NET фреймворком 4.0.
  • Реліз 2.7 був випущений 11 грудня 2009 і оновлений 12 квітня 2010.[4]
  • Реліз 2.7.1 був випущений 21 жовтня 2011.[5]
  • Реліз 2.7.2.1 був випущений 13 березня 2012. Він забезпечує підтримку бібліотек формату ZIP, SQLite, і скомпільованих виконуваних файлів.[6]
  • Реліз 2.7.4 був випущений 7 вересня 2013.[7]
  • Реліз 2.7.5 був випущений 6 грудня 2014 і в основному складається з виправлення багів.[8]

Відмінності з CPython

Є деякі відмінності між Python, CPython і IronPython. Деякі проекти побудовані на IronPython не працюють під CPython. З іншого боку, додатки CPython, які залежать від розширення мови і реалізуються в С (наприклад NumPy) не сумісні з IronPython.

Silverlight

IronPython підтримується на Silverlight. Його можна використати, як скриптовий рушій в браузері, так само, як в JavaScript. Скрипти IronPython передаються, як прості JavaScript-скрипти в <script>-тегах. Після цього можна модифікувати вбудовану розмітку XAML.

Технологія нижче називається Gestalt.

// DLR initiation script.
<script src="http://gestalt.ironpython.net/dlr-latest.js" type="text/javascript"></script>

// Client-side script passed to IronPython and Silverlight.
<script type="text/python">
    window.Alert("Hello from Python")
</script>

Приклади

Цей скрипт використовує .NET фреймворк для виводу простого вікна повідомлення з текстом «Hello World»:

import clr
clr.AddReference("System.Windows.Forms")

from System.Windows.Forms import MessageBox
MessageBox.Show("Hello World")

Простий приклад використання графічного інструменту GTK+ в оточенні IronPython:

#!/usr/bin/env ipy
#-*- coding: UTF-8 -*-

import clr
clr.AddReference('gtk-sharp')
import Gtk

def button_clicked(button, args):
    print('Привіт світе!')

def main():
    Gtk.Application.Init()

    window = Gtk.Window('Вікно вітання')
    window.SetDefaultSize(240, 180)
    window.DeleteEvent += lambda w, a: Gtk.Application.Quit()

    button = Gtk.Button('Натисни мене')
    button.Clicked += button_clicked
    button.Show()

    window.Add(button)
    window.Present()

    Gtk.Application.Run()

if __name__ == '__main__':
    main()

Наступний IronPython скрипт керує об'єктами .NET.

from BookService import BookDictionary
 
booksWrittenByBookerPrizeWinners = [book.Title for book in BookDictionary.GetAllBooks() 
                                    if "Booker Prize" in book.Author.MajorAwards]

Примітки

  1. IronPython license (ironpython.codeplex.com)
  2. 2.0.3. ironpython.codeplex.com. Процитовано 16 жовтня 2010.
  3. 2.6. ironpython.codeplex.com. Процитовано 16 жовтня 2010.
  4. 2.7. ironpython.codeplex.com. Процитовано 12 березня 2011.(англ.)
  5. 2.7.1. ironpython.codeplex.com. Процитовано 30 грудня 2011.(англ.)
  6. 2.7.2.1. ironpython.codeplex.com. Процитовано 24 березня 2012.(англ.)
  7. 2.7.4. ironpython.codeplex.com. Процитовано 7 грудня 2014.(англ.)
  8. 2.7.5. ironpython.codeplex.com. Процитовано 7 грудня 2014.(англ.)

Див. також

Посилання