Функция Python type()

Python3 内置函数Встроенные функции Python3


type()является встроенной функцией в Python, используемой для получения типа объекта.

type()является одной из наиболее часто используемых функций в Python, которая помогает понять тип объекта и является очень важным инструментом в языках с динамической типизацией.

Пояснение термина: type 意为"类型",用于获取对象的类型信息。


Базовый синтаксис и параметры

Синтаксис

type(object)
type(name, bases, dict)

Описание параметра

  • Параметр object:
    • Тип: любой объект
    • Описание: объект, тип которого нужно получить.
  • Параметры name, bases, dict:
    • Тип: строка, кортеж классов, словарь
    • Описание: Используется для динамического создания класса.

Описание функций

  • Возвращаемое значение: Возвращает тип объекта (объект типа).

Примеры

Пример 1: Получить тип объекта

Пример

# Получить тип базовых типов
print(type(123))       # Вывод: <class 'int'>
print(type(3.14))      # Вывод: <class 'float'>
print(type("hello"))   # Вывод: <class 'str'>
print(type(True))      # Вывод: <class 'bool'>
print(type([1, 2, 3])) # Вывод: <class 'list'>
print(type({"a": 1})) # Вывод: <class 'dict'>
print(type((1, 2)))   # Вывод: <class 'tuple'>
print(type({1, 2}))   # Вывод: <class 'set'>

# Тип None
print(type(None))      # Вывод: <class 'NoneType'>

Ожидаемый вывод:

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

Анализ кода:

  1. type()Возвращает объект типа объекта.
  2. Каждый тип сам по себе также является экземпляром класса type.

Пример 2: Сравнение типов

Пример

# Прямое сравнение
value = 42
print(type(value) == int)   # Вывод: True
print(type(value) == str)   # Вывод: False

# Использование isinstance (рекомендуется)
print(isinstance(42, int))        # Вывод: True
print(isinstance("hello", str))  # Вывод: True
print(isinstance(42, (int, float)))  # Вывод: True

# Проверка пользовательских классов
class Dog:
    pass

class Cat:
    pass

dog = Dog()
print(type(dog) == Dog)    # Вывод: True
print(type(dog) == Cat)    # Вывод: False
print(isinstance(dog, Dog)) # Вывод: True

Ожидаемый вывод:

True
False
True
True
True
True
False
True

Анализ кода:

  • Вы можете использоватьtype() ==для точного сравнения типов.
  • Но рекомендуется использоватьisinstance(), потому что он поддерживает наследование.

Пример 3: Динамическое создание класса

Пример

# Создать класс динамически с помощью type()
Person = type("Person", (), {
    "name": "Unknown",
    "age": 0,
    "greet": lambda self: f"Hello, I am {self.name}"
})

# Использовать динамически созданный класс
p = Person()
p.name = "Tom"
print(p.name)         # Вывод: Tom
print(p.greet())      # Вывод: Hello, I am Tom

# Создать класс с наследованием
class Animal:
    def speak(self):
        return "..."

class Dog(Animal):
    def speak(self):
        return "Гав!"

DogClass = type("DogClass", (Animal,), {
    "speak": lambda self: "Woof!"
})

dog = DogClass()
print(dog.speak())  # Вывод: Гав!
print(isinstance(dog, Animal))  # Вывод: True

Ожидаемый вывод:

Динамическое создание классов редко используется в реальном программировании, но понимание этого важно для программирования метаклассов.

type()является одной из самых базовых и важных функций в Python.


Python3 内置函数Встроенные функции Python3


Другие расширения