Viac na
Aký je kanonický spôsob kontroly typu v jazyku Python?
Aký je najlepší spôsob kontroly, či je daný objekt daného typu? Ako skontrolovať, či objekt dedí od daného typu?
Povedzme, že mám objekt o
. Ako skontrolujem, či je to str
?
1160
3
Ak chcete zistiť, či
o
je inštancioustr
alebo nejakou podtriedoustr
, použite isinstance (toto je "kanonický" spôsob):Kontrola, či typ
o
je presnestr
(vylúčte podtriedy):Nasledujúci postup tiež funguje a v niektorých prípadoch môže byť užitočný:
Príslušné informácie nájdete v časti Vstavané funkcie v Referencii knižnice Python.
Ešte jedna poznámka: v tomto prípade, ak'používate Python 2, môžete skutočne použiť:
pretože to zachytí aj reťazce Unicode (
unicode
nie je podtriedastr
; akostr
, tak ajunicode
sú podtriedybasestring
). Všimnite si, žebasestring
už neexistuje v Pythone 3, kde je striktné oddelenie reťazcov (str
) a binárnych dát (bytes
).Alternatívou je
isinstance
, ktorý akceptuje tuple tried. Vráti True, ak x je inštanciou niektorej podtriedy niektorej z (str, unicode):isinstance(o, str)
vrátiTrue
, ako
jestr
alebo je typu, ktorý dedí odstr
.type(o) is str
vrátiTrue
vtedy a len vtedy, ako
je str. VrátiFalse
, ako
je typ, ktorý dedí odstr
.Odkaz na dokumenty