Daugiau
Koks yra kanoninis būdas patikrinti tipą "Python" programoje?
Koks geriausias būdas patikrinti, ar tam tikras objektas yra tam tikro tipo? O kaip patikrinti, ar objektas paveldi iš tam tikro tipo?
Tarkime, turiu objektą o
. Kaip patikrinti, ar jis yra str
?
1160
3
Norėdami patikrinti, ar
o
yrastr
arba bet kuriostr
poklasio egzempliorius, naudokite isinstance (tai būtų "kanoninis" būdas):Patikrinti, ar
o
tipas yra būtentstr
(neįtraukti poklasių):Toliau pateiktas būdas taip pat veikia ir kai kuriais atvejais gali būti naudingas:
Atitinkamos informacijos ieškokite Built-in Functions "Python" bibliotekos žinyne.
Dar viena pastaba: šiuo atveju, jei naudojate Python 2, iš tikrųjų galite naudoti:
nes tai taip pat sugaus Unicode eilutes (
unicode
nėrastr
poklasis; irstr
, irunicode
yrabasestring
poklasiai). Atkreipkite dėmesį, kadbasestring
nebeegzistuoja Python 3, kur yra griežtai atskirta eilutės (str
) ir dvejetainiai duomenys (bytes
).Arba
isinstance
priima klasių tuple. Tai grąžins True, jei x yra bet kurios iš (str, unicode) poklasių instancija:isinstance(o, str)
grąžinsTrue
, jeio
yrastr
arba yra tipo, paveldimo išstr
.type(o) is str
grąžinsTrue
tada ir tik tada, kaio
yra str. Jis grąžinsFalse
, jeio
yra tipo, paveldimo išstr
.Nuoroda į dokumentus