IronPython

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
IronPython
IronPython 3 logo.svg
Ironpython-logo.png
Тип Інтерпретатор мови програмування Python
Розробник Jim Hugunin, Dino Viehland
Перший випуск 5 вересня, 2006
Стабільний випуск 2.7.5 (6 грудня, 2014)
Версії 3.4.0 (12 грудня 2022)[1]
Репозиторій https://github.com/IronLanguages/ironpython2, https://github.com/IronLanguages/ironpython3
Платформа .NET Framework, Mono
Мова програмування C Sharp і Python
Ліцензія Apache License version 2.0[2]
Вебсайт ironpython.net

CMNS: IronPython у Вікісховищі

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

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

Версії[ред. | ред. код]

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

Відмінності з CPython[ред. | ред. код]

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

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. Release 3.4.0 — 2022.
  2. IronPython license (ironpython.codeplex.com). Архів оригіналу за 8 липня 2011. Процитовано 31 липня 2015. 
  3. 2.0.3. ironpython.codeplex.com. Архів оригіналу за 26 грудня 2017. Процитовано 16 жовтня 2010. (англ.)
  4. 2.6. ironpython.codeplex.com. Архів оригіналу за 13 січня 2018. Процитовано 16 жовтня 2010. (англ.)
  5. 2.7. ironpython.codeplex.com. Архів оригіналу за 2 січня 2018. Процитовано 12 березня 2011. (англ.)
  6. 2.7.1. ironpython.codeplex.com. Архів оригіналу за 26 грудня 2017. Процитовано 30 грудня 2011. (англ.)
  7. 2.7.2.1. ironpython.codeplex.com. Архів оригіналу за 26 грудня 2017. Процитовано 24 березня 2012. (англ.)
  8. 2.7.4. ironpython.codeplex.com. Архів оригіналу за 16 січня 2018. Процитовано 7 грудня 2014. (англ.)
  9. 2.7.5. ironpython.codeplex.com. Архів оригіналу за 26 січня 2018. Процитовано 7 грудня 2014. (англ.)
  10. Differences between IronPython 1.0 and CPython 2.4.3. Microsoft. 18 грудня 2007. Архів оригіналу за 1 серпня 2009. Процитовано 9 лютого 2008. (англ.)
  11. Foord, Michael. New Project: Implementing .NET Libraries in Pure Python. Архів оригіналу за 30 серпня 2008. Процитовано 9 лютого 2008. (англ.)
  12. Eby, Phillip. Children of a Lesser Python. Архів оригіналу за 21 грудня 2019. Процитовано 9 липня 2008. (англ.)

Див. також[ред. | ред. код]

Посилання[ред. | ред. код]