Python класс-зависимый шаблон?
Я хочу создать виджет в зависимости от класса объекта, есть ли простой способ сделать это в мако? например
класс A может иметь атрибуты A и B
в то время как
класс B может иметь атрибуты A, B и C
есть шаблон для этого?
я хочу сделать суперкласс, который они наследуют, но если у меня есть функция print и я вызываю ее, вызывая obj.print(), но я не хочу помещать код шаблона в функции класса
например, у меня есть виджет, который идет
<div>obj.a</div>
<div>obj.b</div>
<div>obj.c</div>
<div>obj.d</div>
но если это объект B, я хочу, чтобы он пошел
<div>obj.a</div>
<div>obj.b</div>
<div>obj.c</div>
и т.д., но было интересно, если есть чистый способ сделать это
1 ответ
Решение
Сделай метод, который возвращает [a, b]
в классе А и [a, b, c]
в классе Б.
Тогда вы можете сделать:
% for stuff in thing.return_list_of_stuff:
<div>${stuff}</div>
% endfor
(Я никогда не использовал мако, поэтому синтаксис может быть неправильным.)