de-vraag
  • Klausimai
  • Žymos
  • Vartotojai
Pranešimai
Apdovanojimai
Registracija
Užsiregistravę gausite pranešimus apie atsakymus ir komentarus į savo klausimus.
Prisijungti
Jei jau turite paskyrą, prisijunkite ir patikrinkite naujus pranešimus.
Už pridėtus klausimus, atsakymus ir komentarus bus skiriami apdovanojimai.
Daugiau
Šaltinis
Redaguoti
 Herge
Herge
Question

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 2008-09-30T11:00:10+00:00 3
Peter Mortensen
Peter Mortensen
Redaguotas klausimas popietr lapkritis 2017 в 1:33
Programavimas
python
types
Šis klausimas turi 1 atsakymas atsakymų anglų kalba, norėdami juos perskaityti prisijunkite prie savo paskyros.
Solution / Answer
Fredrik Johansson
Fredrik Johansson
priešpietr rugsėjis 2008 в 11:07
2008-09-30T11:07:45+00:00
Daugiau
Šaltinis
Redaguoti
#8524162

Norėdami patikrinti, ar o yra str arba bet kurio str poklasio egzempliorius, naudokite isinstance (tai būtų "kanoninis" būdas):

if isinstance(o, str):

Patikrinti, ar o tipas yra būtent str (neįtraukti poklasių):

if type(o) is str:

Toliau pateiktas būdas taip pat veikia ir kai kuriais atvejais gali būti naudingas:

if issubclass(type(o), str):

Atitinkamos informacijos ieškokite Built-in Functions "Python" bibliotekos žinyne.

Dar viena pastaba: šiuo atveju, jei naudojate Python 2, iš tikrųjų galite naudoti:

if isinstance(o, basestring):

nes tai taip pat sugaus Unicode eilutes (unicode nėra str poklasis; ir str, ir unicode yra basestring poklasiai). Atkreipkite dėmesį, kad basestring 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:

if isinstance(o, (str, unicode)):
 smci
smci
Redaguotas atsakymas popietr rugsėjis 2018 в 11:53
1397
0
 Herge
Herge
priešpietr rugsėjis 2008 в 11:05
2008-09-30T11:05:51+00:00
Daugiau
Šaltinis
Redaguoti
#8524161

isinstance(o, str) grąžins True, jei o yra str arba yra tipo, paveldimo iš str.

type(o) is str grąžins True tada ir tik tada, kai o yra str. Jis grąžins False, jei o yra tipo, paveldimo iš str.

 L3viathan
L3viathan
Redaguotas atsakymas popietr kovas 2019 в 4:04
49
0
Alexander Kojevnikov
Alexander Kojevnikov
priešpietr rugsėjis 2008 в 11:01
2008-09-30T11:01:28+00:00
Daugiau
Šaltinis
Redaguoti
#8524160
isinstance(o, str)

Nuoroda į dokumentus

 DarkCygnus
DarkCygnus
Redaguotas atsakymas priešpietr kovas 2018 в 6:37
13
0
Pridėti klausimą
Kategorijos
Visi
Technologijos
Kultūra / poilsis
Gyvenimas / Menai
Mokslas
Profesionalus
Verslas
Vartotojai
Visi
Naujas
Populiarus
1
Roxana Elizabeth CASTILLO Avalos
Registruota prieš 4 dienas
2
Hideo Nakagawa
Registruota prieš 5 dienas
3
Sergiy Tytarenko
Registruota prieš 6 dienas
4
shoxrux azadov
Registruota prieš 1 savaitę
5
Koreets Koreytsev
Registruota prieš 1 savaitę
BG
DE
EL
ES
FR
ID
IT
JA
KO
LT
NL
PT
RO
RU
SK
SL
TR
ZH
© de-vraag 2022
Šaltinis
stackoverflow.com
pagal licenciją cc by-sa 3.0 nurodant autorystę