type() en isinstance() in Python begrijpen: praktische voorbeelden
Wat is type() in Python?
Python heeft een ingebouwde functie genaamd type() die je helpt de class-type van de variabele te vinden die als input gegeven wordt. Bijvoorbeeld, als de input een string is, krijg je
Met type() kun je een enkel argument doorgeven, en de return-waarde is de class-type van het argument, bv. type(object).
Het is ook mogelijk om drie argumenten aan type() door te geven: type(name, bases, dict), in dat geval retourneert het een nieuw type-object.
In deze tutorial leer je:
- Wat is type() in Python?
- Syntax voor type()
- Voorbeeld van type()
- Voorbeeld: type() voor class-object gebruiken.
- Voorbeeld: name, bases en dict in type() gebruiken
- Wat is isinstance() in Python?
- Syntax isinstance()
- Voorbeelden van isinstance()
- Verschil tussen type() en isinstance() in Python
Syntax voor type():
type() kan op twee manieren gebruikt worden zoals hieronder getoond:
type(object) type(name, bases, dict)
Parameters: type(object)
- object: Dit is een verplichte parameter. Als dit de enige parameter is die aan type() doorgegeven wordt, retourneert het de type van de parameter.
Parameters: type(name, bases, dict)
- name: naam van de class.
- bases: (optioneel). Dit is een optionele parameter, en het is de base class
- dict: (optioneel). Dit is een optionele parameter, en het is een namespace die de definitie van de class bevat.
Return Waarde:
Als object de enige parameter is die aan type() doorgegeven wordt, dan retourneert het de type van het object.
Als de params die aan type doorgegeven worden type(object, bases, dict) zijn, dan retourneert het een nieuw type-object.
Voorbeeld van type()
In dit voorbeeld hebben we een string-waarde, getal, float-waarde, een complex getal, lijst, tuple, dict en set. We zullen de variabelen met type gebruiken om de output voor elk te zien.
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 class-object.
Wanneer je het object dat vanuit een class is gecreëerd controleert met type(), retourneert het de class-type samen met de naam van de class. In dit voorbeeld creëren we een class en controleren het object-type gecreëerd vanuit de class test.
class test:
s = 'testing'
t = test()
print(type(t))
Output:
<class '__main__.test'>
Voorbeeld: name, bases en dict in type() gebruiken
De type kan ook aangeroepen worden met de syntax: type(name, bases, dict).
De drie parameters die aan type() doorgegeven worden – name, bases en dict – zijn de componenten die een class-definitie vormen. De name vertegenwoordigt de class-naam, de bases is de base-class, en dict is de dictionary van base-class attributen.
In dit voorbeeld gaan we alle drie params gebruiken: name, 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 je alle drie argumenten aan type() doorgeeft, helpt het je een nieuwe class te initialiseren met base-class attributen.
Wat is isinstance() in Python?
Python isinstance is onderdeel van python built-in functies. Python isinstance() neemt twee argumenten, en retourneert true als het eerste argument een instance is van de classinfo gegeven als tweede argument.
Syntax isinstance()
isinstance(object, classtype)
Parameters
- object: Een object wiens instance je vergelijkt met classtype. Het retourneert true als de type matcht, anders false.
- class type: Een type of een class of een tuple van types en/of classes.
Return waarde:
Het retourneert true als het object een instance is van classtype en false als niet.
Voorbeelden van isinstance()
In deze sectie bestuderen we diverse voorbeelden om isinstance() te leren
Voorbeeld: isinstance() Integer check
De onderstaande code vergelijkt integer-waarde 51 met type int. Het retourneert true als de type van 51 matcht met int, anders false.
age = isinstance(51,int)
print("age is an integer:", age)
Output:
age is an integer: True
Voorbeeld: isinstance() Float check
In dit voorbeeld gaan we de float-waarde vergelijken met type float, dus 3.14 waarde wordt vergeleken met type float.
pi = isinstance(3.14,float)
print("pi is a float:", pi)
Output:
pi is a float: True
Voorbeeld: isinstance() String check
message = isinstance("Hello World",str)
print("message is a string:", message)
Output:
message is a string: True
Voorbeeld: isinstance() Tuple check
De code checkt voor een tuple (1,2,3,4,5) met type tuple. Het retourneert true als de input gegeven is van type tuple en false als niet.
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() Set check
De code checkt voor een set ({1,2,3,4,5}, met type set. Het retourneert true als de input gegeven is van type set en false als niet.
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() list check
De code checkt voor een lijst [1,2,3,4,5], met type list. Het retourneert true als de input gegeven is van type list en false als niet.
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() dict check
De code checkt voor een dict({"A":"a", "B":"b", "C":"c", "D":"d"}, met type dict. Het retourneert true als de input gegeven is van type dict en false als niet.
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 class
De code toont de type-check van class met isinstance(). Het object van de class wordt vergeleken met de naam van de class binnen isinstance(). Het retourneert true als het object behoort tot de class en false anders.
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 je helpt de class-type van de variabele te vinden die als input gegeven wordt. | Python heeft een ingebouwde functie genaamd isinstance() die de waarde vergelijkt met de gegeven type. Als de waarde en type matcht, retourneert het true, anders false. |
| De return-waarde is een type-object | De return-waarde is een Boolean, dus true of false. |
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 subclass-check 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 truthy waarde bij check met een subclass. |
Samenvatting:
- Python heeft een ingebouwde functie genaamd type() die je helpt de class-type van de variabele te vinden die als input gegeven wordt. Bijvoorbeeld, als de input een string is, krijg je
, voor een lijst , etc. - Voor type(), kun je een enkel argument doorgeven, en de return-waarde is de class-type van het argument, bv. type(object).
- Het is ook mogelijk om drie argumenten aan type() door te geven, dus type(name, bases, dict), in dat geval retourneert het een nieuw type-object.
- Python heeft een ingebouwde functie genaamd isinstance() die de waarde vergelijkt met het gegeven type. Als de waarde en type matcht, retourneert het true, anders false. Met isinstance() kun je testen voor string, float, int, lijst, tuple, dict, set, class, etc.
- Met isinstance() methode kun je testen voor string, float, int, lijst, tuple, dict, set, class, etc.
Python
- Een Robot Bouwen met Raspberry Pi en Python: Een Complete Gids
- C# Expressies, Statements & Blokken: Uitgebreide Gids met Praktische Voorbeelden
- Python Type Conversie & Casting onder de knie krijgen: Een uitgebreide gids
- Python getallen, typeconversie en wiskunde beheersen
- Python's str.count() beheersen: Karakters & substrings tellen met voorbeelden
- Python `format()` strings beheersen met duidelijke voorbeelden
- Python's String.find()-methode beheersen: Syntaxis, voorbeelden & alternatieven
- Python lambda-functies beheersen: praktische voorbeelden & best practices
- Python round()-functie uitgelegd met praktische voorbeelden
- Python's map()-functie beheersen: syntaxis, voorbeelden en best practices
- Python timeit() – Uitvoeringstijd meten met praktische voorbeelden