Единственное, что в этом говне с кучей типов для строк хорошо -- не нужно думать. Тупо ищешь нужный тип пока не найдёшь, потом с компилятором помучаешься и всё.
@238328 Вот, с ходу поигрался:
```
kb@kb-vaio ~ % python3
Python 3.4.0rc3 (default, Mar 11 2014, 01:46:02)
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> "asd"
'asd'
>>> "asd".decode('utf-8')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute 'decode'
>>> type("asd".decode('utf-8'))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute 'decode'
>>> type("asd".encode('utf-8'))
<class 'bytes'>
>>> str("asd")
'asd'
>>> str("asd").decode('utf-8')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute 'decode'
>>> str("asd").encode('utf-8')
b'asd'
>>> unicode(str("asd"))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'unicode' is not defined
>>> bytes("asd")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: string argument without an encoding
>>> bytes("asd", 'utf-8')
b'asd'
```
В целом, сильно лучше стало, а с ИДЕ типа пайчарм даже наверное типобезопасно (но в остальных, конечно, рантайм-ошибок будет дохуя).
@kb пруф или обычному пользователю должно стать норм, а вот разработчикам библиотек и прочего говна неок // на самом деле хуй знает и всё равно найдутся люди, которые будут гонять БАЙТЫ в СТРОКАХ
алсо лайк если питон3 не нужен, и на 2 заебись, а тут еще что-то втыкать зачем-то опять, нахуй это надо нормальным людям http://python3porting.com/problems.html#bytes-strings-and-unicode
@238328 Просто нужно было в двойке сделать точно так же, чтоб str требовал кодировку (если из текста создаёшь), и только unicode имел decode. Остальное нахуй не нужно было делать, революционеры хреновы.