Python-Klasse-abhängige Vorlage?
Frage
Ich möchte je nach Klasse des Objekts ein Widget erstellen. Gibt es eine einfache Möglichkeit, dies in Mako zu tun? zum Beispiel
Klasse A könnte Attribute A und B haben
während
Klasse B könnte Attribute A, B und C haben
Gibt es ein Muster dafür?
Ich möchte eine Superklasse erstellen, die sie nur erben, aber wenn ich einen Funktionsdruck habe und sie aufrufe, indem ich obj.print () aufzurufen, aber ich möchte keinen Vorlagencode in Klassenfunktionen einfügen
Zum Beispiel habe ich ein Widget, das geht
<div>obj.a</div>
<div>obj.b</div>
<div>obj.c</div>
<div>obj.d</div>
Aber wenn es Objekt B ist, möchte ich, dass es geht
<div>obj.a</div>
<div>obj.b</div>
<div>obj.c</div>
usw., fragte sich aber, ob es einen sauberen Weg gibt, dies zu tun
Lösung
Machen Sie eine Methode, die zurückgibt [a, b]
in Klasse A und [a, b, c]
in Klasse B.
Dann können Sie:
% for stuff in thing.return_list_of_stuff:
<div>${stuff}</div>
% endfor
(Ich habe Mako noch nie benutzt, also könnte die Syntax inkorektiert werden.)