Como título, ¿hay alguna razón para no usar str() para convertir cadena unicode en str?Python ¿cuál es la diferencia entre str (u'a ') y u'a'.encode (' utf-8 ')
>>> str(u'a')
'a'
>>> str(u'a').__class__
<type 'str'>
>>> u'a'.encode('utf-8')
'a'
>>> u'a'.encode('utf-8').__class__
<type 'str'>
>>> u'a'.encode().__class__
<type 'str'>
ACTUALIZACIÓN: gracias por la respuesta, tampoco sabía si creo una cadena utilizando un carácter especial que se convertirá automáticamente en UTF-8
>>> a = '€'
>>> a.__class__
<type 'str'>
>>> a
'\xe2\x82\xac'
También es un objeto Unicode en Python 3