On 19/11/2013 17:30, Pietro Battiston wrote:
[...]
oppure:
for row in r:
print row['id'], row['rel']
Sì, questo mi è chiaro, ma a me piace più un
print mio_ogg.id, mio_ogg.rel
La differenza tra
print row['id'], row['rel']
è solo di "facciata", specialmente se tieni conto che, in realtà, quello
che tu hai scritto è equivalente, in Python, a:
print mio_ogg.__dict__['id'], mio_ogg.__dict__['rel']
... a te no?! Perché se sto parlando di utenti e loro informazioni, di
città e loro posizioni, e più in generale di oggetti e loro proprietà,
dovrei scrivere di righe e loro elementi?!
Perchè è quello che realmente sono, visto che sono memorizzati in un
database relazionale.
E non si parla di righe e loro elementi, ma semplicemente di righe
(anche se il termine corretto sarebbe tupla).
Anche con l'ORM ti restituisce una lista di oggetti, no?
[...]
Appunto... e anche nei casi in cui (poniamo) non ho tabelle collegate,
con l'ORM la classe me la definisco io,
Perchè, la tabella SQL no?
posso aggiungerle dei metodi che
mi servono,
Puoi anche definire funzioni libere, che operano sulla tuple (perchè
tanto in Python i metodi sono funzioni libere, alla fine).
e farlo mano a mano che ne ho bisogno, posso definirla come
subclass di qualcos'altro,
L'ORM offre alcuni pattern complessi per diverse situazioni.
Però, come ti ha detto Nicola, non è tutto "rose e fiori".
posso tenere distinti più facilmente i
refactoring che eventualmente dopo un po' io volessi fare al codice che
lavora sugli oggetti e quelli che voglio fare alla struttura del
database (magari tutto ciò lo posso fare in qualche modo anche senza
l'ORM, ma l'ORM mi sembra lo strumento naturale, no?)...
Se devi fare refactoring, ci sono metodi ben noti a livello di SQL.
... poi ad un livello più di principio, per me l'ORM è ciò che permette
di usare un database ragionando ad oggetti, e la cosa, a meno di
controindicazioni che ancora mi sfuggono, mi piace.
E' attrattivo certamente.
Ma non bisogna abusarne; io ti ho avvertito poi sei libero di fare come
voi (ma il consiglio di imparare prima SQL resta, altrimenti se qualcosa
non funziona/è inefficiente avrai grosse difficoltà).
Ciao Manlio
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python