type() en isinstance() in Python met voorbeelden

Wat is type() in Python?

Python heeft een ingebouwde functie genaamd type() die u helpt het klassetype te vinden van de variabele die als invoer is opgegeven. Als de invoer bijvoorbeeld een tekenreeks is, krijgt u de uitvoer als , voor de lijst zal dat zo zijn enz.

Met de opdracht type() kunt u een enkel argument doorgeven, en de geretourneerde waarde is het klassetype van het gegeven argument, bijvoorbeeld: type(object).

Het is ook mogelijk om drie argumenten door te geven aan type(), dwz type(name, bases, dict), in dat geval zal het u een nieuw type object opleveren.

Syntaxis voor type()

type() kan op twee manieren worden gebruikt, zoals hieronder weergegeven:

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

Kenmerken : type(object)

  • object: Dit is een verplichte parameter. Als dit alleen een parameter is die wordt doorgegeven aan type(), dan krijgt u het type parameter terug.

Kenmerken : type(naam, basen, dictaat)

  • naam:naam van de klas.
  • basissen: (optioneel). Dit is een optionele parameter en het is de basisklasse
  • dictaat: (optioneel). Dit is een optionele parameter en het is een naamruimte die de definitie van de klasse bevat.

Winstwaarde

Als het object de enige parameter is die aan type() wordt doorgegeven, wordt het type van het object geretourneerd.

Als de parameters die aan het type worden doorgegeven een type zijn (object, bases, dict), zal het in dat geval een nieuw type object retourneren.

Voorbeeld van type()

In dit voorbeeld hebben we een stringwaarde, number, floatwaarde, een complex getal, list, tuple, dict en set. We gebruiken de variabelen met type om de uitvoer voor elk van hen te bekijken.

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'>

Voorbeeld: Type() gebruiken voor klasseobject.

Wanneer u het object controleert dat uit een klasse is gemaakt met behulp van type(), retourneert het het klassetype samen met de naam van de klasse. In dit voorbeeld maken we een klasse en controleren we het objecttype dat is gemaakt op basis van de klassentest.

class test:
    s = 'testing'

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

Output:

<class '__main__.test'>

Voorbeeld: gebruik van de naam, basen en dictaat in type()

Het type kan ook worden aangeroepen met behulp van de syntaxis: type(naam, basen, dict).

De drie parameters die worden doorgegeven aan type()ie, name, bases en dict zijn de componenten waaruit een klassedefinitie bestaat. De naam vertegenwoordigt de klassenaam, de bases is de basisklasse en dict is het woordenboek met basisklasse-attributen.

In dit voorbeeld gaan we gebruik maken van alle drie de parameters, dat wil zeggen naam, bases en dict in type().

Voorbeeld:

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}

Wanneer u alle drie de argumenten doorgeeft aan type() , helpt dit u bij het initialiseren van een nieuwe klasse met basisklasse-attributen.

Wat is isinstance() in Python?

Python isinstance maakt deel uit van ingebouwde Python-functies. Python isinstance() accepteert twee argumenten en retourneert true als het eerste argument een instantie is van de classinfo die als tweede argument is opgegeven.

Syntaxis isinstance()

isinstance(object, classtype)

Kenmerken

  • object: Een object waarvan u de instantie vergelijkt met classtype. Het retourneert true als het type overeenkomt, anders false.
  • klassetype: Een type of een klasse of een tupel van typen en/of klassen.

Winstwaarde

Het retourneert true als het object een instantie van classtype is en false als dat niet het geval is.

Voorbeelden van isinstance()

In deze sectie zullen we verschillende voorbeelden bestuderen om isinstance() te leren

Voorbeeld: isinstance() Controle van gehele getallen

De onderstaande code vergelijkt de integerwaarde 51 met het type int. Het retourneert true als het type 51 overeenkomt met int, anders false.

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

Output:

age is an integer: True

Voorbeeld: isinstance() Zwevende controle

In dit voorbeeld gaan we de float-waarde vergelijken met het type float. Dat wil zeggen dat de waarde 3.14 wordt vergeleken met het type float.

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

Output:

pi is a float: True

Voorbeeld: isinstance() Tekenreekscontrole

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

Output:

message is a string: True

Voorbeeld: isinstance() Tupelcontrole

De code controleert op een tupel (1,2,3,4,5) met het type tupel. Het zal true retourneren als de gegeven invoer van het type tuple is en false als dat niet het geval is.

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

Output:

my_tuple is a tuple: True

Voorbeeld: isinstance() Controle instellen

De code controleert op een set ({1,2,3,4,5}, met type set. De code retourneert true als de gegeven invoer van het type set is en false als dat niet het geval is.

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

Output:

my_set is a set: True

Voorbeeld: isinstance() lijstcontrole

De code controleert op een lijst [1,2,3,4,5], met typelijst. Het retourneert waar als de ingevoerde invoer van het type lijst is en onwaar als dat niet het geval is.

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

Output:

my_list is a list: True

Voorbeeld: isinstance() dictcontrole

De code controleert op een dictaat({“A”:”a”, “B”:”b”, “C”:”c”, “D”:”d”},met het type dict. Het retourneert waar als de gegeven invoer is van het type dict en zo niet false.

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

Voorbeeld: isinstance() test op een klasse

De code toont de typecontrole van de klasse met isinstance(). Het object van de klasse wordt vergeleken met de naam van de klasse binnen isinstance(). Het retourneert true als het object tot de klasse behoort en anders false.

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

Verschil tussen type() en isinstance() in Python

type() isinstance ()
Python heeft een ingebouwde functie genaamd type() die u helpt het klassetype te vinden van de variabele die als invoer is opgegeven. Python heeft een ingebouwde functie genaamd isinstance() die de waarde vergelijkt met het gegeven type. Als de waarde en het gegeven type overeenkomen, retourneert het true, anders false.
De geretourneerde waarde is een typeobject De geretourneerde waarde is een Booleaanse waarde, dwz waar of onwaar.
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

In het geval van type geeft de subklassecontrole false terug.

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

isinstance() geeft een waarheidsgetrouwe waarde wanneer gecontroleerd met een subklasse.

Samenvatting

  • Python heeft een ingebouwde functie genaamd type() die u helpt het klassetype te vinden van de variabele die als invoer is opgegeven. Als de invoer bijvoorbeeld een tekenreeks is, krijgt u de uitvoer als , voor de lijst zal dat zo zijn enz.
  • Voor type() kunt u één enkel argument doorgeven, en de geretourneerde waarde zal het klassetype van het opgegeven argument zijn, bijvoorbeeld type(object).
  • Het is ook mogelijk om drie argumenten door te geven aan type(), dwz type(name, bases, dict), in dat geval zal het u een nieuw type object opleveren.
  • Python heeft een ingebouwde functie genaamd instance() die de waarde vergelijkt met het gegeven type. Als de waarde en het gegeven type overeenkomen, retourneert het true, anders false. Met isinstance() kunt u testen op string, float, int, list, tuple, dict, set, class, etc.
  • Met de isinstance()-methode kunt u testen op string, float, int, list, tuple, dict, set, class, etc.

Vat dit bericht samen met: