ΠŸΡƒΡΠΊΠ°Π½Π΅ Π½Π° Brython 3.9, Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° Π΅Π·ΠΈΠΊΠ° Python Π·Π° ΡƒΠ΅Π± Π±Ρ€Π°ΡƒΠ·ΡŠΡ€ΠΈ

ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΈ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Brython 3.9 (Browser Python) с имплСмСнтация Π½Π° Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Python 3 Π·Π° изпълнСниС ΠΎΡ‚ страна Π½Π° ΡƒΠ΅Π± Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΈ позволява Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Python вмСсто JavaScript Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅ Π½Π° скриптовС Π·Π° ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π΅ написан Π½Π° Python ΠΈ разпространява сС ΠΎΡ‚ ΠΏΠΎΠ΄ BSD Π»ΠΈΡ†Π΅Π½Π·. Новата вСрсия сС ΠΎΡ‚Π»ΠΈΡ‡Π°Π²Π° със своята ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ с Python 3.9 ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°.

Π‘Π²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ brython.js ΠΈ brython_stdlib.js, ΡƒΠ΅Π± програмист ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Python Π΅Π·ΠΈΠΊ Π·Π° Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π΅ Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° Π½Π° сайта ΠΎΡ‚ страна Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Python вмСсто JavaScript. Π—Π° Π΄Π° Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ Π½Π° Python Π½Π° страници, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚Π° с mime-Ρ‚ΠΈΠΏΠΎΠΌ Β«text/pythonΒ». ДопускаСтся ΠΊΠ°ΠΊ встраиваниС ΠΊΠΎΠ΄Π° Π½Π° страницу, Ρ‚Π°ΠΊ ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π²Π½Π΅ΡˆΠ½ΠΈΡ… скриптов (). Из скрипта прСдоставляСтся ΠΏΠΎΠ»Π½Ρ‹ΠΉ доступ ΠΊ элСмСнтам ΠΈ событиям DOM.
Π’ допълнСниС към Π΄ΠΎΡΡ‚ΡŠΠΏΠ° Π΄ΠΎ стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π½Π° Python, Ρ‚ΠΎΠΉ ΠΏΡ€Π΅Π΄Π»Π°Π³Π° спСциализирани Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π·Π° взаимодСйствиС с DOM ΠΈ JavaScript Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΊΠ°Ρ‚ΠΎ jQuery, D3, Highcharts ΠΈ Raphael. ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° CSS Ρ€Π°ΠΌΠΊΠΈ Bootstrap3, LESS ΠΈ SASS.

ИзпълнСниС Π½Π° Python ΠΊΠΎΠ΄ ΠΎΡ‚ Π±Π»ΠΎΠΊΠΎΠ²Π΅ производится Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ этого ΠΊΠΎΠ³Π΄Π°, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ Brython послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ страницы. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ инициируСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ brython(), Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‡Π΅Ρ€Π΅Π· Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ «». На основС Python ΠΊΠΎΠ΄Π° формируСтся прСдставлСниС Π½Π° языкС JavaScript, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°Ρ‚Π΅ΠΌ выполняСтся ΡˆΡ‚Π°Ρ‚Π½Ρ‹ΠΌ JavaScript-Π΄Π²ΠΈΠΆΠΊΠΎΠΌ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° (для сравнСния, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ PyPy.js ΠΏΡ€Π΅Π΄Π»Π°Π³Π° CPython ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ Π² asm.js Π·Π° изпълнСниС Π½Π° Python ΠΊΠΎΠ΄ Π² Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π°, ΠΈ Skulpt внСдрява ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π² JavaScript).

ΠžΠ±Ρ‰Π° производитСлност Π½Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² скриптовС Π½Π° Python, Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ Π² ΡƒΠ΅Π± страници Π±Π»ΠΈΠ·ΠΎ към производитСлността Π½Π° CPython. ЗабавянСто възниква само Π½Π° Π΅Ρ‚Π°ΠΏΠ° Π½Π° компилация, Π½ΠΎ Π·Π° Π΄Π° сС Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡ€Π°, Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π΅Π½Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ JavaScript ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡ‚ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ускоряванС Π½Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° (Brython Π’ΠΎΠΉ осигурява инструмСнти Π·Π° създаванС Π½Π° JavaScript Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° Python ΠΌΠΎΠ΄ΡƒΠ»ΠΈ).

Π²Ρ€Π΅ΠΌΠ΅ Π·Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π°Π½Π΅
ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°

ΠΎΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π·Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π°
ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π°ΠΉΡ‚Π΅ browser.timer

ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅ = Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚["ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅"]

...

ΠΏΠ»Π°Ρ‚Π½ΠΎ = content.select_one(β€œ.clock”)

if hasattr(canvas, 'getContext'):
ctx = canvas.getContext("2d")

browser.timer.set_interval(set_clock, 100)
ΡˆΠΎΡƒ_часовС()
Π΄Ρ€ΡƒΠ³ΠΎ:
content.select_one('.navig_zone').html = "ΠΏΠ»Π°Ρ‚Π½ΠΎΡ‚ΠΎ Π½Π΅ сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°"

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€