Questa domanda è emersa durante la scrittura di un semplice gioco di avventura testuale in cui il tuo personaggio ha un inventario, che può includere contenitori che contengono anche elementi. Voglio un modo pulito per modellare l'output dell'inventario, in questo modo:
You are carrying:
a bag containing:
a ring
a backpack containing:
a loaf of bread
Attualmente includo semplicemente la formattazione nel risultato restituito dalla query, tutto in un colpo solo. Ad esempio,
DoInventoryCommand():
result = QueryInventory(...recursively checks inventory adding multiples of tabs depending on nesting level...)
print(result)
Quello che mi piacerebbe è una separazione più pulita tra il contenuto e la presentazione in modo che la query restituisca semplicemente una struttura di dati che potrebbe essere modificata da un passaggio separato.
Ma come dovrebbe il passaggio di stile gestire la struttura dei dati profonda a n livelli? Ad esempio, come lo gestirà uno strumento di stile come i CSS? Hai bisogno di generare proceduralmente il CSS una volta che hai la struttura dei dati?