type() og isinstance() i Python med eksempler
Hvad er type() i Python?
Python har en indbygget funktion kaldet type(), der hjælper dig med at finde klassetypen for variablen givet som input. For eksempel, hvis input er en streng, vil du få output som , for listen, vil det være osv.
Ved at bruge type()-kommandoen kan du sende et enkelt argument, og returværdien vil være klassetypen for det angivne argument, eksempel: type(objekt).
Det er også muligt at sende tre argumenter til type(), dvs. type(navn, baser, dict), i så fald vil det returnere dig et nyt typeobjekt.
Syntaks for type()
type() kan bruges på to måder som vist nedenfor:
type(object) type(namr, bases, dict)
parametre: type(objekt)
- objekt: Dette er en obligatorisk parameter. Hvis dette kun er parameter, der sendes til type(), vil det returnere parameterens type.
parametre: type(navn, baser, diktat)
- navn: navn på klassen.
- baser: (valgfrit). Dette er en valgfri parameter, og det er basisklassen
- dikt: (valgfrit). Dette er en valgfri parameter, og det er et navneområde, der har definitionen af klassen.
Returværdi
Hvis objektet er den eneste parameter, der sendes til type(), vil det returnere objektets type.
Hvis parametrene, der sendes til type, er en type (objekt, baser, dict), vil det i et sådant tilfælde returnere en ny type objekt.
Eksempel på type()
I dette eksempel har vi en strengværdi, tal, flydende værdi, et komplekst tal, liste, tuple, dict og sæt. Vi vil bruge variablerne med type for at se output for hver af dem.
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'>
Eksempel: Brug af type() til klasseobjekt.
Når du kontrollerer objektet, der er oprettet fra en klasse ved hjælp af type(), returnerer det klassetypen sammen med navnet på klassen. I dette eksempel vil vi oprette en klasse og kontrollere den objekttype, der er oprettet fra klassetesten.
class test: s = 'testing' t = test() print(type(t))
Output:
<class '__main__.test'>
Eksempel: Brug af navn, baser og dict i type()
Typen kan også kaldes ved hjælp af syntaksen: type(navn, baser, dikt).
De tre parametre, der sendes til type()ie, navn, baser og dict er de komponenter, der udgør en klassedefinition. Navnet repræsenterer klassenavnet, baserne er basisklassen, og dict er ordbogen over basisklasseattributter.
I dette eksempel skal vi bruge alle tre parametre, dvs. navn, baser og dict i type().
Eksempel:
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}
Når du sender alle tre argumenter til type() , hjælper det dig med at initialisere ny klasse med basisklasseattributter.
Hvad er isinstance() i Python?
Python isinstance er en del af python indbyggede funktioner. Python isinstance() tager to argumenter ind, og det returnerer sandt, hvis det første argument er en forekomst af classinfo givet som det andet argument.
Syntaks isinstance()
isinstance(object, classtype)
parametre
- objekt: Et objekt, hvis instans du sammenligner med klassetype. Det vil returnere sandt, hvis typen matcher ellers falsk.
- klassetype: En type eller en klasse eller en tuple af typer og/eller klasser.
Returværdi
Det vil returnere sandt, hvis objektet er en forekomst af klassetype og falsk, hvis ikke.
Eksempler på isinstance()
I dette afsnit vil vi studere forskellige eksempler for at lære isinstance()
Eksempel: isinstance() Heltalskontrol
Koden nedenfor sammenligner heltalsværdi 51 med typen int. Det vil returnere sandt, hvis typen af 51 matcher med int ellers falsk.
age = isinstance(51,int) print("age is an integer:", age)
Output:
age is an integer: True
Eksempel: isinstance() Float check
I dette eksempel skal vi sammenligne float-værdien med type float, dvs. 3.14-værdien vil sammenlignes med type float.
pi = isinstance(3.14,float) print("pi is a float:", pi)
Output:
pi is a float: True
Eksempel: isinstance() String check
message = isinstance("Hello World",str) print("message is a string:", message)
Output:
message is a string: True
Eksempel: isinstance() Tuple check
Koden tjekker for en tuple (1,2,3,4,5) med type tuple. Det vil returnere sandt, hvis inputtet er af typen tuple og falsk, hvis ikke.
my_tuple = isinstance((1,2,3,4,5),tuple) print("my_tuple is a tuple:", my_tuple)
Output:
my_tuple is a tuple: True
Eksempel: isinstance() Indstil check
Koden tjekker for et sæt ({1,2,3,4,5},med typesæt. Den returnerer sandt, hvis det givne input er af typen sæt og falsk, hvis ikke.
my_set = isinstance({1,2,3,4,5},set) print("my_set is a set:", my_set)
Output:
my_set is a set: True
Eksempel: isinstance() listekontrol
Koden søger efter en liste [1,2,3,4,5]med typeliste. Det vil returnere sandt, hvis det givne input er af typen liste og falsk, hvis ikke.
my_list = isinstance([1,2,3,4,5],list) print("my_list is a list:", my_list)
Output:
my_list is a list: True
Eksempel: isinstance() dict check
Koden søger efter en diktat({“A”:”a”, “B”:”b”, “C”:”c”, “D”:”d”}, med typen dict. Den returnerer sand hvis det givne input er af typen dict og falsk, hvis ikke.
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
Eksempel: isinstance() test på en klasse
Koden viser typetjekket af klasse med isinstance() . Klassens objekt sammenlignes med navnet på klassen inde i isinstance(). Det returnerer sandt, hvis objektet tilhører klassen og falsk ellers.
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
Forskellen mellem type() og isinstance() i Python
type() | isinstance() |
---|---|
Python har en indbygget funktion kaldet type(), der hjælper dig med at finde klassetypen for variablen givet som input. | Python har en indbygget funktion kaldet isinstance(), der sammenligner værdien med den angivne type. Hvis den angivne værdi og type stemmer overens, vil den returnere true ellers falsk. |
Returværdien er et typeobjekt | Returværdien er en boolesk, dvs. sand eller falsk. |
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 I tilfælde af type giver underklassekontrollen falsk tilbage. |
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() giver en sandhedsværdi, når den kontrolleres med en underklasse. |
Resumé
- Python har en indbygget funktion kaldet type(), der hjælper dig med at finde klassetypen for variablen givet som input. For eksempel, hvis input er en streng, vil du få output som , for listen, vil det være osv.
- For type() kan du sende et enkelt argument, og returværdien vil være klassetypen for det angivne argument, f.eks. type(objekt).
- Det er også muligt at sende tre argumenter til type(), dvs. type(navn, baser, dict), i så fald vil det returnere dig et nyt typeobjekt.
- Python har en indbygget funktion kaldet instance(), der sammenligner værdien med den angivne type. Hvis den angivne værdi og type matcher, vil den returnere true ellers falsk. Ved at bruge isinstance() kan du teste for streng, float, int, list, tuple, dict, set, klasse osv.
- Ved at bruge isinstance()-metoden kan du teste for streng, float, int, list, tuple, dict, set, klasse osv.