Как насчет использования числовых сущностей HTML {
и }
для {
и }
соответственно - предположительно, это должно быть выведено как HTML?
РЕДАКТИРОВАТЬ: Извините, я не слишком знаком с liquid (так что это может быть очень неправильно), но вы можете присвоить свое специальное значение {{ example }}
переменной и вывести его? Может быть что-то вроде:
{% assign special = '{{ example }}' %}
{{ special }}
Я бы сказал, что поддержка ООП в Python намного лучше, учитывая тот факт, что она была введена в язык на начальной стадии, в отличие от PHP, который привязывал ООП к существующей процедурной модели.
Одним из необычных аспектов модели ООП Python является ее механизм инкапсуляции. По сути, Python предполагает, что программисты не делают плохих вещей, и поэтому он не изо всех сил старается защитить частные переменные или методы-члены.
Он работает путем изменения имен членов, которые начинаются с двух знаков подчеркивания и заканчиваются менее чем двумя. Такие идентификаторы повсюду изменяются, поэтому к ним добавляется имя класса с дополнительным подчеркиванием перед ним. таким образом:
class foo:
def public(self):
return self.__private()
def __private(self):
return 5
print foo().public()
print foo()._foo__private()
имена, начинающиеся и заканчивающиеся двумя (или более) символами подчеркивания, не изменяются, поэтому __ init __
метод, который python использует для создания новых экземпляров, остается в покое.
Вот ссылка , объясняющая это более подробно.
ООП в Python очень сильна; он допускает множественное наследование, и все можно манипулировать как объект первого класса (включая классы, методы и т. д.).
Полиморфизм выражается через типирование уток. Например, вы можете перебирать список, кортеж, словарь, файл, веб-ресурс и многое другое одним и тем же способом.
Есть много маленьких педантичных вещей, которые, безусловно, не являются объектно ориентированными, например получение длина последовательности с len (list), а не list.len (), но о них лучше не беспокоиться.
Я думаю, что на данный момент они сопоставимы. В качестве простого теста я сомневаюсь, что в шаблонах проектирования или шаблонах архитектуры корпоративных приложений , возможно, двух наиболее влиятельных книгах по ООП, есть какой-либо шаблон, который невозможно реализовать на любом языке.
Оба языка развивались семимильными шагами с раннего детства.
Что касается множественного наследования, то он часто создает больше проблем, чем решает , и в наши дни обычно не используется языков как намеренное дизайнерское решение.
Также: Python имеет встроенную перегрузку операторов, в отличие от PHP (хотя у него есть расширение). Нравится это вам или нет, но оно есть.
Если вы ищете "более чистый" ООП, вам следует обратить внимание на SmallTalk и / или Ruby.
PHP значительно расширился благодаря поддержке ООП, но из-за способа он работает (перезагружает все каждый раз), все может стать очень медленным, если следовать лучшим практикам ООП. Это одна из причин, по которой вы мало слышите о PHP on Rails.