Die Version 3.15.0 des Brython-Projekts (Browser Python) ist verfügbar, das die Programmiersprache Python 3 für Webbrowser implementiert und es ermöglicht, Python anstelle von JavaScript zur Skripterstellung für das Web zu verwenden. In der Brython-Version 3.15 wurde die Kompatibilität mit CPython 3.15 sichergestellt und ein Großteil der neuen Funktionen dieser Version umgesetzt, darunter verzögerte Modulimporte, die Typen frozendict und sentinel sowie die Operatoren „*“ und „**“ zum Entpacken von Listeneinschlüssen. Der Projektcode ist in Python geschrieben und steht unter der BSD-Lizenz zur Verfügung.
Durch das Einbinden der Bibliotheken brython.js und brython_stdlib.js kann der Webentwickler die Programmiersprache Python verwenden, um die Logik der Website auf der Client-Seite zu definieren und Python anstelle von JavaScript anzuwenden. Zur Einfügung von Python-Code in die Seiten wird das Tag mit dem MIME-Typ „text/python“ genutzt. Sowohl das Einbetten von Code auf der Seite als auch das Laden externer Skripte () sind zulässig. Der Skript hat vollen Zugriff auf DOM-Elemente und -Ereignisse. Neben dem Zugriff auf die Standardbibliothek von Python werden spezialisierte Bibliotheken für die Interaktion mit dem DOM und JavaScript-Bibliotheken wie jQuery, D3, Highcharts und Raphael angeboten. Die Verwendung von CSS-Frameworks wie Bootstrap3, LESS und SASS wird unterstützt.
Ausführen von Python-Code aus Blöcken <script> производится через предварительную компиляцию этого кода, выполняемую обработчиком Brython после загрузки страницы. Компиляция инициируется при помощи вызова функции brython(), например через добавление «<body onload="»brython()»">». На основе Python-кода формируется представление на языке JavaScript, которое затем выполняется штатным JavaScript-движком браузера.
Die endgültige Leistung der meisten Operationen in Python-Skripten, die in Webseiten eingebettet sind, ist nahe an der Leistung von CPython. Die Verzögerung tritt nur in der Kompilierungsphase auf, aber es besteht die Möglichkeit, kompilierten JavaScript-Code vorab zu laden, was zur Beschleunigung des Ladevorgangs der Standardbibliothek dient (Brython stellt Tools zur Verfügung, um JavaScript-Bibliotheken basierend auf Python-Modulen zu erstellen).
Quelle: opennet.ru
