Funktio str () palauttaa annetun objektin merkkijonoversion.
Syntaksi str()
on:
str (objekti, koodaus = 'utf-8', virheet = 'tiukka')
str () Parametrit
str()
Menetelmä kestää kolme parametrit:
- object -
object
jonka merkkijonoesitys on palautettava. Jos ei anneta, palauttaa tyhjän merkkijonon - koodaus - annetun objektin koodaus. UTF-8: n oletusasetukset, kun sitä ei toimiteta.
- virheet - Vastaus dekoodauksen epäonnistumisen yhteydessä. Oletusarvo on
'strict'
.
On kuusi tyyppiä errors
:
- tiukka - oletusvaste, joka aiheuttaa
UnicodeDecodeError
poikkeuksen epäonnistumisesta - ohita - ohittaa koodaamattoman Unicoden tuloksesta
- korvaa - korvaa koodaamattoman Unicoden kysymysmerkiksi
- xmlcharrefreplace - lisää XML-merkkiviitteen koodaamattoman Unicoden sijaan
- backslashreplace - lisää
uNNNN
välilyöntisekvenssin koodaamattoman Unicoden sijaan - namereplace - lisää
N(… )
pakosarjan koodaamattoman Unicode-koodin sijaan
Palautusarvo str: stä ()
str()
Menetelmä palauttaa merkkijono, jota pidetään epävirallinen tai hienosti tulostettava esitys antaa objektin.
Esimerkki 1: Muunna merkkijonoksi
Jos koodausta ja virheitä -parametria ei anneta, str()
kutsuu sisäisesti __str__()
objektin menetelmää.
Jos se ei löydä __str__()
menetelmää, se kutsuu sen sijaan repr (obj).
result = str(10) print(result)
Tuotos
10
Huomaa: Tulosmuuttuja sisältää merkkijonon.
Kokeile myös näitä komentoja Python-konsolissa.
>>> str ('Adam')
>>> str (b'Python! ')
Esimerkki 2: Kuinka str () toimii tavuilla?
Jos encoding
ja errors
parametri annetaan, ensimmäisen parametrin, objektin , tulisi olla tavua muistuttava objekti (tavut tai tavujärjestys).
Jos kohde on tavua tai bytearray , str()
sisäisesti puhelut bytes.decode(encoding, errors)
.
Muussa tapauksessa se saa tavuobjektin puskuriin ennen decode()
menetelmän kutsumista .
# bytes b = bytes('pythön', encoding='utf-8') print(str(b, encoding='ascii', errors='ignore'))
Tuotos
pythn
Tässä merkkiä 'ö'
ei voida dekoodata ASCII: lla. Siksi sen pitäisi antaa virhe. Olemme kuitenkin asettaneet errors ='ignore'
. Siksi Python jättää huomiotta merkin, jota ei voida dekoodata str()
.