Если вы ищете альтернативу функции Python isinstance(), которая проверяет, является ли объект экземпляром определенного класса или его подкласса, вы можете рассмотреть несколько вариантов.. Вот несколько методов, которые вы можете использовать:
- Использование функции
type(). Вы можете использовать функциюtype()для непосредственной проверки типа объекта. Он возвращает тип объекта, который можно сравнить с нужным классом или типом.
Пример:
obj = "Hello, World!"
if type(obj) == str:
print("The object is a string.")
- Использование атрибута
__class__. Каждый объект в Python имеет атрибут__class__, который представляет его класс. Вы можете сравнить этот атрибут с нужным классом или типом.
Пример:
obj = 123
if obj.__class__ == int:
print("The object is an integer.")
- Использование модуля
inspect. Модульinspectпредоставляет несколько функций, которые могут помочь вам определить тип объекта или проверить, принадлежит ли он определенному классу.
Пример:
import inspect
obj = [1, 2, 3]
if inspect.isclass(type(obj)) and issubclass(type(obj), list):
print("The object is a list or its subclass.")
- Использование
type()с наследованием. Если вы хотите проверить, является ли объект экземпляром класса или любого из его подклассов, вы можете использоватьtype()функция в сочетании сissubclass().
Пример:
class Vehicle:
pass
class Car(Vehicle):
pass
obj = Car()
if issubclass(type(obj), Vehicle):
print("The object is an instance of Vehicle or its subclass.")
Атрибут
, модуль проверки, наследование в Python