IronPython
IronPython | |
---|---|
![]() | |
Basisdaten | |
Erscheinungsjahr: | 2006 |
Designer: | Jim Hugunin |
Entwickler: | Jim Hugunin, Microsoft |
Aktuelle Version: | 1.1 (17. April 2007) |
Betriebssystem: | Plattformunabhängig |
Lizenz: | Microsoft Permissive License 1.1 |
www.codeplex.com |
IronPython ist eine Implementierung der Programmiersprache Python für die Common-Language-Infrastructure. Sie zielt also auf Microsofts .NET-Umgebung beziehungsweise auf die Open-Source-Variante Mono ab.
IronPython ist vollständig in C# geschrieben und wird im Rahmen von Microsofts Shared-Source-Initiative bereitgestellt. IronPython steht in der Version 1.1 zur Verfügung und implementiert den Sprachumfang von cPython 2.4 sowie einige der Schlüsselworte von Python 2.5.
In IronPython erstellte Programme lassen sich sowohl interpretieren als auch just-in-time in ausführbare Dateien übersetzen. Wie in .NET üblich, kann man mit IronPython auf Bibliotheken zugreifen die in anderen .NET Sprachen geschrieben wurden, ebenso wie diese mit Einschränkungen auf in IronPython geschriebene Bibliotheken zugreifen können.
Die IronPython Umgebung kann als eine Skriptsprache zum automatisieren einer .NET Anwendung genutzt werden. Dabei wird die Laufzeitumgebung in die .NET Anwendung eingebunden. Es können beliebige Objekte an das Skript übergeben werden, was z.B. für Spieleerweiterungen, Pluginentwicklungen usw. sinnvoll ist.
Beispiele
Eine Ausgabe ohne .NET Bibliothek:
print "Hallo Welt!"
Das gleiche Beispiel diesmal mit einer "internen" .NET Bibliothek:
from System import Console Console.WriteLine("Hallo Welt!")
Und einmal mit Hilfe einer "externen" .NET Bibliothek, wobei die MyLib.dll in einer beliebigen anderen .NET Sprache (z.B. C#, VisualBasic, C++) geschrieben sein kann:
import clr clr.AddReferenceToFile("MyLib.dll") from MyLib import Out Out.Print("Hallo Welt!")
IronPython in C# einbinden (z.B. als Taschenrechner):
using System; using IronPython.Hosting; public class Eval { public static void Main(string[] args) { PythonEngine pe = new PythonEngine(); Console.WriteLine(pe.Evaluate(args[0])); } }
Nehmen wir an, das C# Programm liegt als eval.exe kompiliert vor. Wenn jetzt die IronPython-Laufzeitbibliotheken IronPython.dll und IronMath.dll (z.B. in dem selben Verzeichnis) vorhanden sind, können wir beliebige Pythonausdrücke evaluieren:
C:\> eval.exe 2+2 4
C:\> eval.exe 2**3 8
C:\> eval.exe 5%3 2
In einem Tutorial, das mit dem IronPython-Paket mitgeliefert wird, ist ein Beispiel zu sehen, wie IronPython als Skriptsprache für C# benutzt werden kann.
Siehe auch
- Python - Die Programmiersprache Python
- Jython - Java-Implementierung der Programmiersprache Python.
- PyPy - Implementierung der Programmiersprache Python in Python selbst.
- Boo - Implementierung der Python-ähnlichen Programmiersprache Boo für .NET.