De functie str () geeft de stringversie van het opgegeven object terug.
De syntaxis van str()
is:
str (object, encoding = 'utf-8', errors = 'strict')
str () Parameters
De str()
methode heeft drie parameters:
- object - De
object
waarvan de tekenreeksweergave moet worden geretourneerd. Retourneert de lege tekenreeks als deze niet is opgegeven - encoding - Codering van het opgegeven object. Standaardwaarden van UTF-8 indien niet opgegeven.
- errors - Reactie wanneer decodering mislukt. Standaard ingesteld op
'strict'
.
Er zijn zes soorten errors
:
- strict - standaardantwoord dat een
UnicodeDecodeError
uitzondering oproept bij een fout - negeren - negeert de niet-codeerbare Unicode uit het resultaat
- vervangen - vervangt de niet-codeerbare Unicode door een vraagteken
- xmlcharrefreplace - voegt XML-tekenreferentie in in plaats van niet-codeerbare Unicode
- backslashreplace - voegt een
uNNNN
espace-reeks in in plaats van niet-codeerbare Unicode - namereplace - voegt een
N(… )
escape-reeks in in plaats van een niet-codeerbare Unicode
Retourwaarde van str ()
De str()
methode retourneert een string, die wordt beschouwd als een informele of mooi afdrukbare weergave van het gegeven object.
Voorbeeld 1: converteren naar tekenreeks
Als de parameter codering en fouten niet is opgegeven, str()
roept intern de __str__()
methode van een object aan.
Als het de __str__()
methode niet kan vinden , roept het in plaats daarvan repr (obj) aan.
result = str(10) print(result)
Uitvoer
10
Opmerking: de resultaatvariabele bevat een tekenreeks.
Probeer deze opdrachten ook op de Python-console.
>>> str ('Adam')
>>> str (b'Python! ')
Voorbeeld 2: Hoe werkt str () voor bytes?
Indien encoding
en errors
parameter wordt verschaft, de eerste parameter, object , moet een byte-achtige object (bytes of ByteArray).
Als het object bytes of bytearray is , str()
roept intern bytes.decode(encoding, errors)
.
Anders haalt het het bytes-object in de buffer op voordat de decode()
methode wordt aangeroepen.
# bytes b = bytes('pythön', encoding='utf-8') print(str(b, encoding='ascii', errors='ignore'))
Uitvoer
pythn
Hier kan het teken 'ö'
niet worden gedecodeerd door ASCII. Daarom zou het een fout moeten geven. We hebben echter de errors ='ignore'
. Daarom negeert Python het teken dat niet kan worden gedecodeerd door str()
.