Python type()-Funktion
Python3 integrierte Funktionen
type()ist eine eingebaute Funktion in Python, mit der der Typ eines Objekts ermittelt wird.
type()ist eine der am häufigsten verwendeten Funktionen in Python, die uns hilft, den Typ eines Objekts zu verstehen, und ist ein sehr wichtiges Werkzeug in dynamisch typisierten Sprachen.
Begriffserklärung: type 意为"类型",用于获取对象的类型信息。
Grundlegende Syntax und Parameter
Syntax
type(object) type(name, bases, dict)
Parameterbeschreibung
- Parameter object:
- Typ: Beliebiges Objekt
- Beschreibung: Das Objekt, dessen Typ ermittelt werden soll.
- Parameter name, bases, dict:
- Typ: String, Tupel von Klassen, Dictionary
- Beschreibung: Wird verwendet, um eine Klasse dynamisch zu erstellen.
Funktionsbeschreibung
- Rückgabewert: Gibt den Typ des Objekts zurück (ein Typobjekt).
Beispiele
Beispiel 1: Objekttyp ermitteln
Beispiel
# Typ der Basistypen ermitteln
print(type(123)) # Ausgabe: <class 'int'>
print(type(3.14)) # Ausgabe: <class 'float'>
print(type("hello")) # Ausgabe: <class 'str'>
print(type(True)) # Ausgabe: <class 'bool'>
print(type([1, 2, 3])) # Ausgabe: <class 'list'>
print(type({"a": 1})) # Ausgabe: <class 'dict'>
print(type((1, 2))) # Ausgabe: <class 'tuple'>
print(type({1, 2})) # Ausgabe: <class 'set'>
# Typ von None
print(type(None)) # Ausgabe: <class 'NoneType'>
print(type(123)) # Ausgabe: <class 'int'>
print(type(3.14)) # Ausgabe: <class 'float'>
print(type("hello")) # Ausgabe: <class 'str'>
print(type(True)) # Ausgabe: <class 'bool'>
print(type([1, 2, 3])) # Ausgabe: <class 'list'>
print(type({"a": 1})) # Ausgabe: <class 'dict'>
print(type((1, 2))) # Ausgabe: <class 'tuple'>
print(type({1, 2})) # Ausgabe: <class 'set'>
# Typ von None
print(type(None)) # Ausgabe: <class 'NoneType'>
Erwartete Ausgabe:
<class 'int'> <class 'float'> <class 'str'> <class 'bool'> <class 'list'> <class 'dict'> <class 'tuple'> <class 'set'> <class 'NoneType'>
Codeanalyse:
type()Gibt das Typobjekt des Objekts zurück.- Jeder Typ ist selbst auch eine Instanz der type-Klasse.
Beispiel 2: Typen vergleichen
Beispiel
# Direkter Vergleich
value = 42
print(type(value) == int) # Ausgabe: True
print(type(value) == str) # Ausgabe: False
# Verwendung von isinstance (empfohlen)
print(isinstance(42, int)) # Ausgabe: True
print(isinstance("hello", str)) # Ausgabe: True
print(isinstance(42, (int, float))) # Ausgabe: True
# Benutzerdefinierte Klassen prüfen
class Dog:
pass
class Cat:
pass
dog = Dog()
print(type(dog) == Dog) # Ausgabe: True
print(type(dog) == Cat) # Ausgabe: False
print(isinstance(dog, Dog)) # Ausgabe: True
value = 42
print(type(value) == int) # Ausgabe: True
print(type(value) == str) # Ausgabe: False
# Verwendung von isinstance (empfohlen)
print(isinstance(42, int)) # Ausgabe: True
print(isinstance("hello", str)) # Ausgabe: True
print(isinstance(42, (int, float))) # Ausgabe: True
# Benutzerdefinierte Klassen prüfen
class Dog:
pass
class Cat:
pass
dog = Dog()
print(type(dog) == Dog) # Ausgabe: True
print(type(dog) == Cat) # Ausgabe: False
print(isinstance(dog, Dog)) # Ausgabe: True
Erwartete Ausgabe:
True False True True True True False True
Codeanalyse:
- Sie können
type() ==für einen präzisen Typvergleich. - Es wird jedoch empfohlen
isinstance(), da es Vererbung unterstützt.
Beispiel 3: Eine Klasse dynamisch erstellen
Beispiel
# Eine Klasse dynamisch mit type() erstellen
Person = type("Person", (), {
"name": "Unknown",
"age": 0,
"greet": lambda self: f"Hello, I am {self.name}"
})
# Die dynamisch erstellte Klasse verwenden
p = Person()
p.name = "Tom"
print(p.name) # Ausgabe: Tom
print(p.greet()) # Ausgabe: Hello, I am Tom
# Eine Klasse mit Vererbung erstellen
class Animal:
def speak(self):
return "..."
class Dog(Animal):
def speak(self):
return "Woof!"
DogClass = type("DogClass", (Animal,), {
"speak": lambda self: "Woof!"
})
dog = DogClass()
print(dog.speak()) # Ausgabe: Wuff!
print(isinstance(dog, Animal)) # Ausgabe: True
Person = type("Person", (), {
"name": "Unknown",
"age": 0,
"greet": lambda self: f"Hello, I am {self.name}"
})
# Die dynamisch erstellte Klasse verwenden
p = Person()
p.name = "Tom"
print(p.name) # Ausgabe: Tom
print(p.greet()) # Ausgabe: Hello, I am Tom
# Eine Klasse mit Vererbung erstellen
class Animal:
def speak(self):
return "..."
class Dog(Animal):
def speak(self):
return "Woof!"
DogClass = type("DogClass", (Animal,), {
"speak": lambda self: "Woof!"
})
dog = DogClass()
print(dog.speak()) # Ausgabe: Wuff!
print(isinstance(dog, Animal)) # Ausgabe: True
Erwartete Ausgabe:
Das dynamische Erstellen von Klassen wird in der tatsächlichen Programmierung selten verwendet, aber das Verständnis dafür ist wichtig für die Metaklassenprogrammierung.
type()ist eine der grundlegendsten und wichtigsten Funktionen in Python.
Python3 integrierte Funktionen
Andere Erweiterungen