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 -
objectjehož ř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á
UnicodeDecodeErrorvý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ží
uNNNNespace 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 encodinga errorsje 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().








