Type ja isinstance näited

Sissejuhatus

Pythonis on andmetüübid väga olulised, kuna need aitavad teil teha otsuseid ja manipuleerida andmetega. Kaks sagedast funktsiooni, mida kasutatakse andmetüüpide kontrollimiseks ja tüübi teisendamiseks, on type() ja isinstance().

type() funktsioon võimaldab teil teada saada, milline andmetüüp on konkreetne objekt, samas kui isinstance() kontrollib, kas objekt kuulub antud klassi või klasside hulka.

Type funktsiooni kasutamine

type() funktsioon võimaldab teil saada objekti tüübi. Siin on mõned näited:

x = 5
y = "Tere, maailm"
z = [1, 2, 3]

print(type(x))  # <class 'int'>
print(type(y))  # <class 'str'>
print(type(z))  # <class 'list'>

Isinstance funktsiooni kasutamine

isinstance() funktsioon kontrollib, kas objekt kuulub antud klassi või klasside hulka. Siin on näide:

x = 5

if isinstance(x, int):
    print("x on integer.")
else:
    print("x ei ole integer.")

# Väljund: x on integer.

Teisendamine andmetüüpideks

Mõnikord peate teisendama ühe andmetüübi teiseks. Näiteks, kui soovite teisendada stringi arvuks, võite kasutada int() funktsiooni. Siin on näide:

num_str = "42"
num_int = int(num_str)

print(num_int)  # 42
print(type(num_int))  # <class 'int'>

Pärilikus

Kasutades klasse on võimalik defineerida enda andme tüüpe. Selle käigus saab tehe alamklasse, mis kasutavad ülemklasside meetodeid ja väärtuseid. Kutsudes type() alam tüübi peal tagastab selle tüübi sõnalise väljenduse, millega ei saa kontrollida, kas tüüp pärineb mingist teisest, aga isinstance() võimaldab selle kontrollimise.

class MyClass:
    def __init__(self):
        pass


class MySubClass(MyClass):
    def __init__(self):
        super().__init__()

my_variable = MySubClass()

print(type(my_variable) == MySubClass)      # True
print(type(my_variable) == MyClass)         # False
print(isinstance(my_variable, MySubClass))  # True
print(isinstance(my_variable, MyClass))     # True

Kokkuvõte

Pythoni type() ja isinstance() funktsioonid on kasulikud, kui peate kontrollima objekti tüüpi või klassi kuulumist. Samuti saate kasutada andmetüüpide teisendamiseks sisseehitatud funktsioone, näiteks int(), str(), float(), jne.