Az str () függvény az adott objektum karakterlánc-verzióját adja vissza.
A szintaxisa str()
:
str (objektum, kódolás = 'utf-8', hibák = 'szigorú')
str () Paraméterek
A str()
módszer három paramétert vesz fel:
- object - Az a
object
karakterlánc-ábrázolás, amelyet vissza kell adni Ha nincs megadva, akkor az üres karakterláncot adja vissza - kódolás - Az adott objektum kódolása. Az UTF-8 alapértelmezett beállításai, ha nincs megadva.
- hibák - Válasz, ha a dekódolás sikertelen. Alapértelmezés szerint
'strict'
.
Hatféle típus létezik errors
:
- szigorú - alapértelmezett válasz, amely
UnicodeDecodeError
kivételt jelent a hiba esetén - figyelmen kívül hagyja - figyelmen kívül hagyja a kódolhatatlan Unicode-ot az eredményből
- csere - a kódolhatatlan Unicode kérdőjelre cseréli
- xmlcharrefreplace - XML karakter hivatkozást illeszt be a kódolhatatlan Unicode helyett
- backslashreplace -
uNNNN
kódolatlan Unicode helyett beszúr egy espace szekvenciát - namereplace - egy
N(… )
kódolási Unicode helyett egy menekülési szekvenciát illeszt be
Visszatérési érték str ()
A str()
metódus egy karakterláncot ad vissza, amelyet az adott objektum informális vagy szépen nyomtatható ábrázolásának tekintenek.
1. példa: Konvertálás karakterláncra
Ha a kódolás és a hibák paraméter nem szerepel, akkor az objektum metódusát str()
belsőleg hívja meg __str__()
.
Ha nem találja meg a __str__()
módszert, akkor a repr (obj) parancsot hívja meg.
result = str(10) print(result)
Kimenet
10.
Megjegyzés: Az eredmény változó tartalmazni fog egy karakterláncot.
Próbálja ki ezeket a parancsokat a Python konzolon is.
>>> str ('Ádám')
>>> str (b'Python! ')
2. példa: Hogyan működik az str () bájtoknál?
Ha encoding
és errors
paraméter meg van adva, akkor az első paraméternek, objektumnak bájtszerű objektumnak kell lennie (bájt vagy bájtrajz).
Ha az objektum bájt vagy bytearray , akkor str()
belső hívások bytes.decode(encoding, errors)
.
Egyébként a bájt objektumot a pufferbe kapja, mielőtt meghívná a decode()
metódust.
# bytes b = bytes('pythön', encoding='utf-8') print(str(b, encoding='ascii', errors='ignore'))
Kimenet
pythn
Itt a karaktert 'ö'
nem tudja dekódolni az ASCII. Ezért hibát kell adnia. Azonban beállítottuk a errors ='ignore'
. Ezért a Python figyelmen kívül hagyja a karaktert, amelyet nem lehet dekódolni str()
.