type() és isinstance() in Python példákkal

Mi a type() Python?

Python van egy type() nevű beépített függvénye, amely segít megtalálni a bemenetként megadott változó osztálytípusát. Például, ha a bemenet egy karakterlánc, akkor a kimenetet a következőképpen kapja meg , a listához az lesz stb.

A type() paranccsal egyetlen argumentumot adhatunk át, és a visszatérési érték a megadott argumentum osztálytípusa lesz, például: type(object).

Három argumentumot is átadhatunk a type(), azaz type(név, alapok, dict) paraméternek, ebben az esetben egy új típusú objektumot ad vissza.

A type() szintaxisa

type() kétféleképpen használható, az alábbiak szerint:

 type(object)
type(namr, bases, dict)

paraméterek: típus(objektum)

  • objektum: Ez egy kötelező paraméter. Ha ez csak a type() paraméternek van átadva, akkor visszaadja a paraméter típusát.

paraméterek: típus(név, alapok, diktátum)

  • név:osztály neve.
  • alapok: (nem kötelező). Ez egy opcionális paraméter, és ez az alaposztály
  • diktál: (nem kötelező). Ez egy opcionális paraméter, és ez egy névtér, amely tartalmazza az osztály definícióját.

Visszatérési érték

Ha az objektum az egyetlen paraméter, amelyet a type()-nek adunk át, akkor visszaadja az objektum típusát.

Ha a típusnak átadott paraméter egy típus (objektum, bázisok, dict), ebben az esetben egy új típusú objektumot ad vissza.

Példa a típusra ()

Ebben a példában van egy karakterlánc érték, szám , lebegő érték, komplex szám, lista, tuple , dict és halmaz. A típussal rendelkező változókat fogjuk használni, hogy megnézzük mindegyik kimenetét.

str_list = "Welcome to Guru99"
age = 50
pi = 3.14
c_num = 3j+10
my_list = ["A", "B", "C", "D"]
my_tuple = ("A", "B", "C", "D")
my_dict = {"A":"a", "B":"b", "C":"c", "D":"d"}
my_set = {'A', 'B', 'C', 'D'}

print("The type is : ",type(str_list))
print("The type is : ",type(age))
print("The type is : ",type(pi))
print("The type is : ",type(c_num))
print("The type is : ",type(my_list))
print("The type is : ",type(my_tuple))
print("The type is : ",type(my_dict))
print("The type is : ",type(my_set))

output:

The type is :<class 'str'>
The type is :<class 'int'>
The type is :<class 'float'>
The type is :<class 'complex'>
The type is :<class 'list'>
The type is :<class 'tuple'>
The type is :<class 'dict'>
The type is :<class 'set'>

Példa: A type() használata osztályobjektumhoz.

Amikor az osztályból létrehozott objektumot a type() használatával ellenőrzi, az osztály típusát adja vissza az osztály nevével együtt. Ebben a példában létrehozunk egy osztályt, és ellenőrizzük az osztálytesztből létrehozott objektumtípust.

class test:
    s = 'testing'

t = test()
print(type(t))

output:

<class '__main__.test'>

Példa: A név, az alapok és a dict használata a type()

A típus a következő szintaxissal is meghívható: type(name, bases, dict).

A type()ie-nek átadott három paraméter, name, bases és dict alkotja az osztálydefiníciót. A név az osztály nevét jelenti, a bases az alaposztályt, a dict pedig az alaposztály attribútumainak szótára.

Ebben a példában mindhárom paramétert, azaz a nevet, a bázisokat és a dict-t használjuk a type()-ben.

Példa:

class MyClass:
  x = 'Hello World'
  y = 50

t1 = type('NewClass', (MyClass,), dict(x='Hello World', y=50))
print(type(t1))
print(vars(t1))

output:

<class 'type'>
{'x': 'Hello World', 'y': 50, '__module__': '__main__', '__doc__': None}

Ha mindhárom argumentumot átadja a type() -nek, ez segít az új osztály inicializálásában az alaposztály attribútumaival.

Miben van az isstance() Python?

Python isinstance része python beépített függvényei. Python Az isinstance() két argumentumot vesz fel, és igazat ad vissza, ha az első argumentum a második argumentumként megadott classinfo példánya.

Szintaxis isinstance()

isinstance(object, classtype)

paraméterek

  • objektum: Olyan objektum, amelynek példányát az osztálytípussal hasonlítja össze. Igazat ad vissza, ha a típus egyébként hamis.
  • osztálytípus: Egy típus vagy egy osztály vagy típusok és/vagy osztályok sorozata.

Visszatérési érték

Igazat ad vissza, ha az objektum osztálytípus példánya, és false-t, ha nem.

Példák az isstance()

Ebben a részben különféle példákat fogunk tanulmányozni, hogy megtanuljuk az isinstance()

Példa: isinstance() Integer check

Az alábbi kód az 51-es egész számot hasonlítja össze az int típussal. Igazat ad vissza, ez az 51-es típusú egyezés az int-vel, egyébként false.

age = isinstance(51,int)
print("age is an integer:", age)

output:

age is an integer: True

Példa: isinstance() Float check

Ebben a példában a float értéket a float típussal fogjuk összehasonlítani, azaz a 3.14 értéket a float típussal fogjuk összehasonlítani.

pi = isinstance(3.14,float)
print("pi is a float:", pi)

output:

pi is a float: True

Példa: isinstance() String check

message = isinstance("Hello World",str)
print("message is a string:", message)

output:

message is a string: True

Példa: isinstance() Tuple check

A kód egy sor (1,2,3,4,5) típusát ellenőrzi. Igazat ad vissza, ha a megadott bemenet tuple típusú, és false-t, ha nem.

my_tuple = isinstance((1,2,3,4,5),tuple)
print("my_tuple is a tuple:", my_tuple)

output:

my_tuple is a tuple: True

Példa: isinstance() Állítsa be az ellenőrzést

A kód egy halmazt ({1,2,3,4,5}, beállított típussal) ellenőrzi. Igazat ad vissza, ha a megadott bemenet típusa set, és false-t, ha nem.

my_set = isinstance({1,2,3,4,5},set)
print("my_set is a set:", my_set)

output:

my_set is a set: True

Példa: isinstance() lista ellenőrzése

A kód egy listát keres [1,2,3,4,5] típuslistával. Igazat ad vissza, ha a megadott bemenet lista típusú, és false-t, ha nem.

my_list = isinstance([1,2,3,4,5],list)
print("my_list is a list:", my_list)

output:

my_list is a list: True

Példa: isinstance() dict check

A kód ellenőrzi, hogy van-e dict ({"A":"a", "B":"b", "C":"c", "D":"d"}, dict típusú. Igaz értéket ad vissza, ha a megadott bemenet dict típusú, és false, ha nem.

my_dict = isinstance({"A":"a", "B":"b", "C":"c", "D":"d"},dict)
print("my_dict is a dict:", my_dict)

output:

my_dict is a dict: True

Példa: isinstance() teszt egy osztályon

A kód az isinstance() osztály típusellenőrzését mutatja. Az osztály objektuma összehasonlításra kerül az osztály nevével az isinstance()-on belül. Igazat ad vissza, ha az objektum az osztályhoz tartozik, egyébként false-t.

class MyClass:
    _message = "Hello World"

_class = MyClass()

print("_class is a instance of MyClass() : ", isinstance(_class,MyClass))

output:

_class is a instance of MyClass() True

Különbség a type() és az isinstance() között in Python

típus () isinstance ()
Python van egy type() nevű beépített függvénye, amely segít megtalálni a bemenetként megadott változó osztálytípusát. Python van egy beépített isinstance() függvénye, amely összehasonlítja az értéket a megadott típussal. Ha a megadott érték és típus megegyezik, akkor igaz, ellenkező esetben hamis értéket ad vissza.
A visszatérési érték egy típusú objektum A visszatérési érték logikai, azaz igaz vagy hamis.
class A:
my_listA = [1,2,3]

class B(A):
my_listB = [1,2,3]

print(type(A()) == A)
print(type(B()) == A)

output:

True
False

Típus esetén az alosztály ellenőrzése false-t ad vissza.

class A:
my_listA = [1,2,3]

class B(A):
my_listB = [1,2,3]

print(isinstance(A(), A))
print(isinstance(B(), A))

output:

True
True

Az isinstance() igaz értéket ad, ha egy alosztállyal ellenőrizzük.

Összegzésként

  • Python van egy type() nevű beépített függvénye, amely segít megtalálni a bemenetként megadott változó osztálytípusát. Például, ha a bemenet egy karakterlánc, akkor a kimenetet a következőképpen kapja meg , a listához az lesz stb.
  • A type() esetén egyetlen argumentumot adhatunk át, és a visszatérési érték a megadott argumentum osztálytípusa lesz, pl. type(object).
  • Három argumentumot is átadhatunk a type(), azaz type(név, alapok, dict) paraméternek, ebben az esetben egy új típusú objektumot ad vissza.
  • Python van egy beépített example() függvénye, amely összehasonlítja az értéket a megadott típussal. Ha a megadott érték és típus megegyezik, akkor igaz, ellenkező esetben hamis értéket ad vissza. Az isinstance() segítségével tesztelheti a string, float, int, list, tuple, dict, set, class stb.
  • Az isinstance() metódussal tesztelheti a string, float, int, list, tuple, dict, set, class stb.

Foglald össze ezt a bejegyzést a következőképpen: