タイトルのとおり、str() を使用して Unicode 文字列を str にキャストしない理由はありますか??
>>> 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'>
更新:答えてくれてありがとう、また、特殊文字を使用して文字列を作成すると、自動的にutf-8に変換されるかどうかもわかりませんでした
>>> a = '€'
>>> a.__class__
<type 'str'>
>>> a
'\xe2\x82\xac'
Python 3 の Unicode オブジェクトでもあります