LINUX.ORG.RU

История изменений

Исправление rtxtxtrx, (текущая версия) :

In [1]: def str2(x):
   ...:     return getattr(x, 'decode', lambda: str(x))()
   ...: 

In [2]: str2(b'ko')
Out[2]: 'ko'

In [3]: str2('ko')
Out[3]: 'ko'

In [4]: str2({'ko'})
Out[4]: "{'ko'}"

А вообще это какая-то дурная идея… Странная проблема. Он еще JS не трогал, вот он где высрет кирпичи:

({
    toString() { return super.toString().replace(/object/, 'govno') }
}) + 42
'[govno Object]42'

Исходная версия rtxtxtrx, :

In [1]: def str2(x):
   ...:     return getattr(x, 'decode', lambda: str(x))()
   ...: 

In [2]: str2(b'ko')
Out[2]: 'ko'

In [3]: str2('ko')
Out[3]: 'ko'

In [4]: str2({'ko'})
Out[4]: "{'ko'}"