Python __str__ kontra __unicode__

Czy istnieje konwencja Pythona na potrzeby implementacji__str__() przeciw__unicode__(). Widziałem klasy nadpisujące__unicode__() częściej niż__str__() ale to nie wydaje się być spójne. Czy istnieją konkretne zasady, kiedy lepiej jest wdrożyć jeden w stosunku do drugiego? Czy konieczne jest / dobre wdrożenie obu?