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

Rispondere a