Python str vs tipos de unicode

Trabajando con Python 2.7, me pregunto qué ventaja real hay al usar el tipounicode en lugar destr, ya que ambos parecen ser capaces de mantener cadenas de Unicode. ¿Hay alguna razón especial además de poder configurar códigos Unicode enunicode cuerdas utilizando el personaje de escape\?:

Ejecutando un módulo con:

# -*- coding: utf-8 -*-

a = 'á'
ua = u'á'
print a, ua

Resultados en: á, á

EDITAR:

Más pruebas usando el shell de Python:

>>> a = 'á'
>>> a
'\xc3\xa1'
>>> ua = u'á'
>>> ua
u'\xe1'
>>> ua.encode('utf8')
'\xc3\xa1'
>>> ua.encode('latin1')
'\xe1'
>>> ua
u'\xe1'

Entonces elunicode cadena parece estar codificada utilizandolatin1 en lugar deutf-8 y la cadena en bruto se codifica utilizandoutf-8? ¡Estoy aún más confundido ahora! : S

Respuestas a la pregunta(4)

Su respuesta a la pregunta