PT153, насколько я знаю, питон тоже можно скомпилировать при желании в байткод для его виртуальной машины, чтобы не интерпретировать заново каждый раз, как и большую часть современных интерпретируемых языков.
Утром пол часа бился с TriggerAddAction, он не воспринимал функцию как функцию.
Вурст штука прикольная, но слишком сильно отличается от стандартного Jass к которому уже успел привыкнуть endfunction также вызывает еррор :D
Залез в него из-за удобного создания объектов и прописывания того же макс хп одной строкой в коде :D Ненавижу стандартный РО
PyCCKuu_4eJl, в идеале лучше по максимуму избегать нативных и бж-функций, заменяя их эквивалентамии из стандартной библиотеки, например
код
package Test
import NoWurst
import Trigger
import RegisterEvents
function actions()
// ...
init
CreateTrigger() // Тут ничего не поделаешь, берем нативную
..registerAnyUnitEvent(EVENT_PLAYER_UNIT_SPELL_EFFECT)
..addCondition( Condition(()->GetSpellAbilityId() == 'A000') )
..addAction(function actions) // Из пакета Trigger
registerSpellEffectEvent('A000', function actions) // То же самое, но короче (пакет RegisterEvents)
В Phython табуляция не влияет на компиляцию, потому что Phython - интерпретируемый язык, у него нет компилятора.
Очень интересная история, только во всех современных "интерпретируемых" языках интерпретируется не текст, а байткод, который компилируется самым настоящим компилятором из текста программы, только не заранее, а каждый запуск. Как уже упомянули, тот же самый байткод можно сохранить в .pyc файл.
Doc, обычно компиляция также проверяет и соответствие типов, что в Python невозможно сделать. Потому я так и ответил. Но действительно, компиляцией может быть просто трансляция ЯП на низкоуровневый язык. Если Python таким промышляет, то тогда я действительно ошибся.
Компиляция ни в каком смысле не обязана проверять соответствие типов. Typechecking - отдельная фаза компиляции, которая может там быть или не быть. Это просто трансляция текста понятного человеку в данные, понятные машине. Виртуальной или физической. Я не смогу назвать ни одного более менее крупного языка, который бы не использовал байткод.
darkowlom:
Вурст штука прикольная, но слишком сильно отличается от стандартного Jass к которому уже успел привыкнуть
endfunction также вызывает еррор :D
Залез в него из-за удобного создания объектов и прописывания того же макс хп одной строкой в коде :D
Ненавижу стандартный РО
Ред. GetLocalPlayer
GetLocalPlayer, Спасибо за статейки на русском ;3