Python type()-Funktion

Python3 内置函数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'>

Erwartete Ausgabe:

<class 'int'>
<class 'float'>
<class 'str'>
<class 'bool'>
<class 'list'>
<class 'dict'>
<class 'tuple'>
<class 'set'>
<class 'NoneType'>

Codeanalyse:

  1. type()Gibt das Typobjekt des Objekts zurück.
  2. 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

Erwartete Ausgabe:

True
False
True
True
True
True
False
True

Codeanalyse:

  • Sie könnentype() ==für einen präzisen Typvergleich.
  • Es wird jedoch empfohlenisinstance(), 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

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 内置函数Python3 integrierte Funktionen


Andere Erweiterungen