Funkce str () vrací řetězcovou verzi daného objektu.
Syntaxe str()
je:
str (object, encoding = 'utf-8', errors = 'strict')
str () Parametry
str()
Metoda má tři parametry:
- objekt -
object
jehož řetězcová reprezentace má být vrácena. Pokud není zadán, vrátí prázdný řetězec - encoding - kódování daného objektu. Výchozí hodnoty UTF-8, pokud nejsou k dispozici.
- errors - Response when decoding failed. Výchozí nastavení pro
'strict'
.
Existuje šest typů errors
:
- strict - výchozí odpověď, která vyvolá
UnicodeDecodeError
výjimku při selhání - ignore - ignoruje nezakódovatelný Unicode z výsledku
- nahradit - nahradí nezakódovatelný Unicode na otazník
- xmlcharrefreplace - vloží odkaz na znak XML namísto nekódovatelného Unicode
- backslashreplace - vloží
uNNNN
espace sekvenci namísto unencodable Unicode - namereplace - vloží
N(… )
únikovou sekvenci namísto nekódovatelného Unicode
Vrátit hodnotu z str ()
str()
Metoda vrací řetězec, který je považován za neformální nebo pěkně vytisknutí reprezentace daného objektu.
Příklad 1: Převést na řetězec
Pokud není zadán parametr kódování a chyby , str()
interně volá __str__()
metodu objektu.
Pokud nemůže najít __str__()
metodu, volá místo toho repr (obj).
result = str(10) print(result)
Výstup
10
Poznámka: Výsledná proměnná bude obsahovat řetězec.
Tyto příkazy také vyzkoušejte na konzole Pythonu.
>>> str ('Adam')
>>> str (b'Python! ')
Příklad 2: Jak str () funguje pro bajty?
Pokud encoding
a errors
je zadán parametr, první parametr, objekt , by měl být objekt podobný bajtům (bajty nebo bytearray).
Pokud je objekt bajty nebo bytearray , str()
interně volá bytes.decode(encoding, errors)
.
Jinak získá objekt bajtů ve vyrovnávací paměti před voláním decode()
metody.
# bytes b = bytes('pythön', encoding='utf-8') print(str(b, encoding='ascii', errors='ignore'))
Výstup
pythn
Zde nelze znak 'ö'
dekódovat pomocí ASCII. Proto by to mělo dát chybu. Nastavili jsme však errors ='ignore'
. Proto Python ignoruje znak, který nelze dekódovat str()
.