Funktionen type () returnerar antingen objekttypen eller returnerar ett nytt typobjekt baserat på de skickade argumenten.
Den type()
funktionen har två olika former:
typ (objekt) typ (namn, baser, dict)
typ () med en enda objektparameter
Om ett enda objekt skickas till type()
returnerar funktionen sin typ.
Exempel 1: Hämta typ av ett objekt
numbers_list = (1, 2) print(type(numbers_list)) numbers_dict = (1: 'one', 2: 'two') print(type(numbers_dict)) class Foo: a = 0 foo = Foo() print(type(foo))
Produktion
Om du behöver kontrollera typen av ett objekt är det bättre att använda Python isinstance () -funktionen istället. Det beror på att isinstance()
funktionen också kontrollerar om det angivna objektet är en förekomst av underklassen.
typ () Med namn, baser och dikt Parametrar
Om tre parametrar skickas till type()
returneras en ny typ objekt.
De tre parametrarna är:
Parameter | Beskrivning |
---|---|
namn | ett klassnamn; blir __name__ attributet |
baser | en tuple som specificerar basklassen; blir __bases__ attributet |
diktera | en ordbok som är namnområdet som innehåller definitioner för klassens kropp; blir __dict__ attributet |
Exempel 2: Skapa ett typobjekt
o1 = type('X', (object,), dict(a='Foo', b=12)) print(type(o1)) print(vars(o1)) class test: a = 'Foo' b = 12 o2 = type('Y', (test,), dict(a='Foo', b=12)) print(type(o2)) print(vars(o2))
Produktion
('a': 'Foo', 'b': 12, '__module__': '__main__', '__dict__':, '__weakref__':, '__doc__': Ingen) ('a': 'Foo', 'b ': 12,' __module__ ':' __main__ ',' __doc__ ': Ingen)
I programmet har vi använt Python vars () -funktionen som returnerar __dict__
attributet. __dict__
används för att lagra objekts skrivbara attribut.
Du kan enkelt ändra dessa attribut om det behövs. Om du till exempel behöver ändra __name__
attributet för o1 till 'Z'
, använd:
o1 .__ namn = 'Z'