Funkcia str () vráti reťazcovú verziu daného objektu.
Syntax str()
je:
str (object, encoding = 'utf-8', errors = 'strict')
str () Parametre
str()
Metóda má tri parametre:
- object - Objekt
object
ktorého reťazcového zastúpenia sa má vrátiť. Ak nie je uvedený, vráti prázdny reťazec - encoding - kódovanie daného objektu. Predvolené hodnoty UTF-8, ak nie sú poskytnuté.
- chyby - reakcia pri zlyhaní dekódovania. Predvolené hodnoty pre
'strict'
.
Existuje šesť typov errors
:
- strict - predvolená odpoveď, ktorá vyvolá
UnicodeDecodeError
výnimku pri zlyhaní - ignore - ignoruje nekódovateľný Unicode z výsledku
- nahradiť - nahradí nekódovateľný kód Unicode otáznikom
- xmlcharrefreplace - vloží odkaz na znak XML namiesto nekódovateľného Unicode
- backslashreplace - vloží
uNNNN
espace sekvenciu namiesto nekódovateľného Unicode - namereplace - vloží
N(… )
únikovú sekvenciu namiesto nekódovateľného Unicode
Vrátiť hodnotu z str ()
str()
Metóda vracia reťazec, ktorý je považovaný za neformálne alebo pekne vytlačení reprezentácie daného objektu.
Príklad 1: Previesť na reťazec
Ak nie je zadaný parameter kódovania a chýb , str()
interne sa volá __str__()
metóda objektu.
Ak nenájde __str__()
metódu, namiesto toho zavolá repr (obj).
result = str(10) print(result)
Výkon
10
Poznámka: Výsledná premenná bude obsahovať reťazec.
Tieto príkazy tiež vyskúšajte na konzole Python.
>>> str ('Adam')
>>> str (b'Python! ')
Príklad 2: Ako str () funguje pre bajty?
Ak encoding
a errors
je zadaný parameter, prvý parameter, objekt , by mal byť objekt podobný bytes (bytes or bytearray).
Ak je objekt bajty alebo bytearray , str()
interne sa volá bytes.decode(encoding, errors)
.
V opačnom prípade získa objekt bajtov do medzipamäte pred volaním decode()
metódy.
# bytes b = bytes('pythön', encoding='utf-8') print(str(b, encoding='ascii', errors='ignore'))
Výkon
pythn
Tu znak 'ö'
nemôže byť dekódovaný pomocou ASCII. Preto by malo dôjsť k chybe. Stanovili sme však errors ='ignore'
. Preto Python ignoruje znak, ktorým sa nedá dekódovať str()
.