IronPython
Datei:Ironpython-logo.png | {{#if: | {{#if:| {{#if:| {{#if:| {{#if:Jim Hugunin, Microsoft| {{#if:| {{#if:3.4.0-beta1<ref>Release 3.4.0-beta1 auf github.com</ref>| {{#if:| {{#if:| {{#if:| {{#if:| {{#if:| {{#if:| {{#if:Plattformunabhängig| {{#if:Apache-Lizenz 2.0| {{#if:ironpython.net|
| {{#if: | | {{#invoke:WLink|getArticleBase}} }} | |||
|---|---|---|---|
| colspan="2" class="notheme" style="text-align:center; background-color:#Vorlage:Standardfarbe;" | Datei:Ironpython-logo.png | {{#if: {{#invoke:Wikidata|claim|P154}} |
|
[[Datei:{{#invoke:Wikidata|claim|P154}}|150px]]
}} }} | ||
| {{{Screenshot}}}{{#if: | }}| }} | |||
| Basisdaten | |||
| Paradigmen: |
}} | ||
| Erscheinungsjahr: |
{{#if: {{#invoke:Wikidata|claim|P571}} |
|
Erscheinungsjahr: | claim|P571|references=ja}}
}} }} |
| Designer: |
{{#if: {{#invoke:Wikidata|claim|P287}} |
|
Designer: | claim|P287|parameter=link|references=ja|list=, }}
}} }} |
| Entwickler: | Jim Hugunin, Microsoft |
{{#if: {{#invoke:Wikidata|claim|P178}} |
|
Entwickler: | claim|P178|parameter=link|references=ja|list=, }}
}} }} |
| Aktuelle Version: | () |
{{#if: {{#invoke:Wikidata|claim|P348}} | |
Aktuelle Version | {{#invoke:Wikidata|claim|P348|references=ja}}{{#if: {{#invoke:Wikidata|claim|Version|qualifier=P577}} | ({{#invoke:Wikidata|claim|Version|qualifier=P577}})}}}}
}} |
| Aktuelle Vorabversion: | 3.4.0-beta1<ref>Release 3.4.0-beta1 auf github.com</ref> (01. Mai 2022)
}} | ||
| Typisierung: |
}} | ||
| Wichtige Implementierungen: | {{{Implementierung}}}
}} | ||
| Dialekte: | {{{Dialekte}}}
}} | ||
| Standardisierungen: | {{{Standardisierungen}}}
}} | ||
| Beeinflusst von: |
{{#if: {{#invoke:Wikidata|claim|P737}} |
|
Beeinflusst von: | claim|P737|parameter=link|references=ja|list=, }}
}} }} |
| Beeinflusste: | {{{Beeinflusste}}}
}} | ||
| Betriebssystem: | Plattformunabhängig |
{{#if: {{#invoke:Wikidata|claim|P306}} |
|
Betriebssystem: | claim|P306|parameter=link|references=ja|list=, }}
}} }} |
| Lizenz: | Apache-Lizenz 2.0 |
{{#if: {{#invoke:Wikidata|claim|P275}} |
|
Lizenz: | claim|P275|parameter=link|references=ja|list=, }}
}} }} |
ironpython.net |
{{#if: {{#invoke:Wikidata|claim|P856}} |
| |||
{{#invoke: WLink | formatURL | {{#invoke:Wikidata|claim|P856|parameter=link}}}}
}} }} | |||
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 je nach Version 2 oder 3 im Sprachumfang kompatibel zu CPython 2.7 bzw. 3.x, 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
Eine Ausgabe ohne .NET-Bibliothek:
<syntaxhighlight lang="python"> print "Hallo Welt!" </syntaxhighlight>
Das gleiche Beispiel, diesmal mit einer „internen“ .NET-Bibliothek:
<syntaxhighlight lang="python"> from System import Console
Console.WriteLine("Hallo Welt!") </syntaxhighlight>
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:
<syntaxhighlight lang="python"> import clr clr.AddReferenceToFile("MyLib.dll") from MyLib import Out
Out.Print("Hallo Welt!") </syntaxhighlight>
IronPython in C# einbinden (z. B. als Taschenrechner):
<syntaxhighlight lang="csharp"> using System; using IronPython.Hosting; using Microsoft.Scripting.Hosting;
public class Eval {
public static void Main(string[] args)
{
ScriptEngine se = Python.CreateEngine();
Console.WriteLine(se.Execute(args[0]));
}
} </syntaxhighlight>
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:
<syntaxhighlight lang="text">
C:\> eval.exe 2+2 4
C:\> eval.exe 2**3 8
C:\> eval.exe 5%3 2
</syntaxhighlight>
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
Einzelnachweise
<references />