IronPython
IronPython | |
---|---|
| |
Basisdaten | |
Erscheinungsjahr: | 5. September 2006 |
Designer: | Jim Hugunin |
Entwickler: | Jim Hugunin, Microsoft |
Aktuelle Version | 3.4.2[1] (20. Dezember 2024) |
Aktuelle Vorabversion: | 3.4.0-beta1[2] (01. Mai 2022) |
Betriebssystem: | Plattformunabhängig |
Lizenz: | Apache-Lizenz 2.0 |
ironpython.net |
IronPython ist eine Implementierung der Programmiersprache Python für die Common Language Infrastructure (CLI) bzw. damit kompatible Laufzeitumgebungen wie z. B. Mono.
IronPython ist vollständig in C# geschrieben und wird im Rahmen der Apache-Lizenz 2.0 bereitgestellt. IronPython ist im Sprachumfang kompatibel zu CPython 2.7, wird aber ohne die Python-Standard-Bibliothek ausgeliefert. Es lassen sich jedoch sämtliche Module einer CPython-Installation laden, solange diese keine kompilierten Bibliotheken benötigen. Zugriff auf .NET-Assemblies ist uneingeschränkt möglich.
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 oder Plug-in-Entwicklungen sinnvoll ist.
Beispiele
[Bearbeiten | Quelltext bearbeiten ]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#, Visual Basic .NET oder C++/CLI) 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):
usingSystem; usingIronPython.Hosting; usingMicrosoft.Scripting.Hosting; publicclassEval { publicstaticvoidMain(string[]args) { ScriptEnginese=Python.CreateEngine(); Console.WriteLine(se.Execute(args[0])); } }
Angenommen das C#-Programm liegt als eval.exe kompiliert vor und die IronPython-Laufzeitbibliotheken IronPython.dll und IronMath.dll (z. B. in demselben Verzeichnis) sind vorhanden, können beliebige Python-Ausdrücke ausgewertet werden:
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
[Bearbeiten | Quelltext bearbeiten ]- 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
Einzelnachweise
[Bearbeiten | Quelltext bearbeiten ]- ↑ Release 3.4.2. 20. Dezember 2024 (abgerufen am 24. Dezember 2024).
- ↑ Release 3.4.0-beta1 auf github.com