Функция issubclass() в Python проверяет наследование, является ли аргумент object (первый аргумент) подклассом класса classinfo (второй аргумент).
Что такое функция issubclass() в Python?
Python issubclass() — это встроенный метод, который используется для проверки того, является ли класс подклассом другого класса или нет. Функция issubclass() возвращает логическое значение True, если указанный объект является подклассом, в противном случае — False. В этом методе первый аргумент проверяется вторым аргументом, является ли первый подклассом второго или нет.
Синтаксис
|
1 |
issubclass(object, classinfo) |
Аргументы
Вот следующие параметры данного метода:
- object: класс для проверки.
- classinfo: класс, кортеж или тип класса.
Возвращаемое значение
Функция Python issubclass() возвращает два типа результата: True или False.
Если объект является подклассом classinfo, он возвращает True; в противном случае возвращается False.
Пример
См. следующий пример кода.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
#Creating superclass class Bank: pass #Creating subclass class SBI(Bank): pass #Creating sub class of SBI class HDFC(SBI): pass #Now we will check subclass with different arguments #Checking if SBI is subclass of Bank or not print(issubclass(SBI,Bank)) #Checking if Bank is subclass of SBi or not print(issubclass(Bank, SBI)) #Checking multilevel subclass print(issubclass(HDFC, Bank)) #Checking if a class is subclass of itself or not print(issubclass(HDFC,HDFC)) #checking with an object argument #Here object is referred to base class always print(issubclass(Bank, object)) |
Смотрите вывод.
|
1 2 3 4 5 |
True False True True True |
Таким образом, он возвращает True, если класс, указанный в качестве первого аргумента, является подклассом другого класса, указанного в качестве второго аргумента, в противном случае он возвращает False.
Python issubclass() с кортежем классов
См. следующий код.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# app.py class Top: pass class Middle(Top): pass class Low(Middle): pass print(issubclass(Low,(str, list, Top))) |
В приведенном выше примере вы можете сказать, что Top является основным родительским классом, тогда его дочерний класс — это Middle, а дочерний класс класса Middle — это Low.
Далее в операторе печати мы проверяем, что тип класса Low является подклассом одного класса или кортежа классов. Смотрите вывод.
|
1 2 3 |
➜ pyt python3 app.py True ➜ pyt |
Разница между issubclass() и isinstance()
Python isinstance(object, classinfo) проверяет, является ли объект экземпляром или подклассом classinfo.
Принимая во внимание, что issubclass(class, classinfo) проверяет, является ли класс подклассом classinfo.
Функция Python isinstance() используется для проверки того, является ли объект экземпляром определенного класса или любого из его подклассов. Она принимает два параметра.
Первый — это объект для тестирования, а второй — отдельный класс или набор классов. Он проверит, является ли первый параметр, объект, экземпляром класса classinfo. Если вторым параметром является кортеж классов, он проверит, является ли первый объект экземпляром какого-либо из классов в кортеже.
Опять же, issubclass() в Питон используется для проверки того, является ли тип класса подклассом другого класса. Второй параметр — это один класс или кортеж классов.
