Функция str () возвращает строковую версию данного объекта.
Синтаксис str()
:
str (объект, кодировка = 'utf-8', errors = 'strict')
str () Параметры
str()
Метод принимает три параметра:
- объект - объект
object
, строковое представление которого должно быть возвращено. Если не указан, возвращает пустую строку - encoding - Кодировка данного объекта. По умолчанию используется UTF-8, если он не указан.
- ошибки - Ответ при сбое декодирования. По умолчанию
'strict'
.
Выделяют шесть типов errors
:
- strict - ответ по умолчанию, который вызывает
UnicodeDecodeError
исключение при сбое - ignore - игнорирует некодируемый Unicode из результата
- replace - заменяет некодируемый Unicode на вопросительный знак
- xmlcharrefreplace - вставляет ссылку на символ XML вместо некодируемого Unicode
- backslashreplace - вставляет
uNNNN
последовательность espace вместо некодируемого Unicode - namereplace - вставляет
N(… )
escape-последовательность вместо некодируемого Unicode
Возвращаемое значение из str ()
str()
Метод возвращает строку, которая считается неформальным или хорошо для печати представления данного объекта.
Пример 1: преобразовать в строку
Если параметр кодирования и ошибок не указан, str()
вызывает внутренний __str__()
метод объекта.
Если он не может найти __str__()
метод, он вместо этого вызывает repr (obj).
result = str(10) print(result)
Вывод
10
Примечание: переменная результата будет содержать строку.
Также попробуйте эти команды на консоли Python.
>>> str ('Адам')
>>> str (b'Python! ')
Пример 2: Как str () работает с байтами?
Если encoding
и errors
параметр предусмотрен, первый параметр, объект , должен быть байт-как-объект (байт или ByteArray).
Если объект байтов или байтовый массив , str()
внутренне вызывает bytes.decode(encoding, errors)
.
В противном случае он получает объект байтов в буфере перед вызовом decode()
метода.
# bytes b = bytes('pythön', encoding='utf-8') print(str(b, encoding='ascii', errors='ignore'))
Вывод
питн
Здесь символ 'ö'
не может быть декодирован ASCII. Следовательно, он должен выдать ошибку. Однако мы установили errors ='ignore'
. Следовательно, Python игнорирует символ, который не может быть декодирован str()
.