Ik testte een code op de tolk en merkte een onverwacht gedrag op voor de sqlite3.Row
klasse.
Ik heb begrepen dat print obj
altijd hetzelfde resultaat krijgt als print str (obj)
, en typ obj
in de interpreter krijgt hetzelfde resultaat als print repr (obj)
, maar dit is niet het geval voor sqlite3.Row
:
>>> print row # the row object prints like a tuple
(u'string',)
>>> print str(row) # why wouldn't this match the output from above?
>>> row # usually this would be the repr for an object
(u'string',)
>>> print repr(row) # but repr(row) is something different as well!
Ik denk dat sqlite3.Row
een subklasse van tuple
moet zijn, maar ik begrijp nog steeds niet precies wat er achter de schermen gebeurt dat dit gedrag zou kunnen veroorzaken. Kan iemand dit uitleggen?
Dit werd getest op Python 2.5.1, niet zeker of het gedrag hetzelfde is voor andere Python-versies.
Weet niet zeker of dit al dan niet van belang is, maar de row_factory
kenmerk voor mijn Verbinding
is ingesteld op sqlite3.Row
.